1. 编写程序,计算一个字符串的长度。(利用指针变量)

怎么做!

#include "stdio.h"
main()
{
int i=0,len;
char str[80]="Happy";

for(i=0;str[i]!='\0';i++) /*计算字符串的有效长度*/
; /*这个分号我不懂,为什么没有len=4,而有了len=5.
len=i;
printf("len=%d\n",len);
for(i=0;str[i]!='\0';i++) /*输出字符串*/
putchar(str[i]);
}
温馨提示:答案为网友推荐,仅供参考
第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;

}