请忽略那里的日本人。
我尝试使用以下代码计算从 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 ×1