首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于函数strlen()?该如何解决

2013-01-18 
关于函数strlen()?#includestdio.hint main(){char *b abcdefgint iprintf(%d\n,strlen(b))for

关于函数strlen()?

#include<stdio.h>
int main(){
char *b = "abcdefg";
        int i;
printf("%d\n",strlen(b));
for(i = 0;i < strlen(b);i++){
printf("%c",*b);
b++;
}
return 0;
}

输出为 7 abcd。为什么?
strlen(b)的值为7,遍历的时候为什么只遍历4个字母呢? c
[解决办法]
for(i = 0;i < strlen(b);i++){
    printf("%c",*b);
    b++;
}
由于b++,b已经改变,strlen(b)也变了。

[解决办法]
#include<stdio.h>
int main(){
char *b = "abcdefg";
        int i;
printf("%d\n",strlen(b));
for(i = 0;i < strlen(b);i++){
printf("%c",*(b+i));
}
return 0;
}
这样就对了,b++;语句改变了循环条件

热点排行