小编Mik*_*hen的帖子

使用 while(str[n++]!='\0') 计算字符串的长度

请忽略那里的日本人。
我尝试使用以下代码计算从 stdin 输入的字符串的长度。但它没有按预期工作:

#include <stdio.h>

int main(int argc, const char *argv[]) {
    char str[100];

    printf("?????????????");  // Please enter a string:
    fgets(str,99,stdin);

    int n = 0;
    while (str[n++] != '\0');
    printf("???????%d??\n", n);  // The length of the string is %d\n
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)

例如,如果我输入glacious,我会得到n=10,我期望是n=8
我知道n++str[n++] != '\0'评估后会增加 n ,并且\0是附加到每个字符串的默认字符。但不知何故,这对我来说没有意义。我知道我可以通过n-=2在最后添加来达到我的目的,但我真的很想了解这里发生了什么。提前谢谢了!

c

4
推荐指数
1
解决办法
180
查看次数

标签 统计

c ×1