统计字符串个数(简单)
- C/C++ code
#include<stdio.h>int put2(const char * string);int main(void){ printf("%d",put2("abcde")); return 0;}int put2(const char * string){ int count=0; while(*string) { putchar(*string++); count++; } putchar('\n');/*加不加效果一样,不能吸收'\n'.*/ return count;}
结果显示:abcde 5;
字符串"abcde"+'\0'应该是6位啊,怎么是5位了?就算我不加putchar('\n');都还是5位?
[解决办法]
输出5是正确的,因为当string指向'\0'时,已经推出循环了。'\0'和0是一样的,可以这样认为。
输入的时候,scanf("%c", &ch);才可能会出现垃圾出现在输入的数据中。解决办法是使用getchar();来吸收。