第1个回答 2010-05-31
#include <stdio.h>
int len(char *a)
{
int n=0;
while(*(a++)!=0)
n++;
return n;
}
int main()
{
char data[]="nihao";
printf("len=%d\n",len(data));
return 0;
}
程序如上就可以。
补充:楼上的
加上分号,明显len=i;
在循环体内,所以len=4;
不加则是在体外,i=5;退出循环,所以len=5;
第2个回答 2010-05-31
for(i=0;str[i]!='\0';i++) /*计算字符串的有效长度*/
; /*这个分号我不懂,为什么没有len=4,而有了len=5.
len=i;
因为i从0开始,i = 4 循环继续判断,i变成5,此时str[5]='\0',结束循环,最后再把len赋值为5,符合我们平时的计数习惯。
第3个回答 2010-05-31
for循环中,i先自加再判断,在i=4时,循环继续,之后i自加(i=5),再判断不满足条件,跳出循环。此时i已经等于5.所以输出的就是5啦。
第4个回答 2012-12-25
#include"stdio.h"
#include"windows.h"
#include"string.h"
int main()
{
char a[10],*p;
int sum=0;
gets(a);
for(p=a;*p!='\0';p++)
sum++;
printf("%d",sum);
system("pause");
return 0;
}