1.除了使用strlen()函数,和定义指针推移计算之外的字符串长度计算
#include <stdio.h>
#include <stdlib.h>
int fun(char *s)
{
char *t=s;
while(*t++);
t--;
return(t-s);
}
int main()
{ int i;
char a[20]="dingjie";
i= fun(a);
printf("i=%d",i);
system("pause");
return 0;
}
1. while(*t++); 注意有个分号,这表示*t一直循环到\0时结束循环,这时*t的值=“\0”
2. t--指向字符串\0地址的前一位,这里改成*t--,表示指向上一位字符串,效果是一样的。
3. return(t-s),这里为什么不是return(*t-*s)呢,因为这相当于一头一尾字符串值相减了。
4.计算机为字符串分配一段内存,字符串中每个字符占一个字节,这样一来,一段字符串分配的内存头尾相减,就是字符串字符个数了。