关于函数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>这样就对了,b++;语句改变了循环条件
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;
}