长度是假设当通过弦时返回计数器走了多远.但是,它只会在预先打印时返回正确的值.如果我注释掉printf它会返回0.有没有人对此有解释?
#include<stdio.h>
#include<string.h>
#define MAX 100
int length(char *s) {
int i;
for (i = 0; s[i] != '\0'; ++i)
printf("%d ", i); //<-- here
return i;
}
int main()
{
char s[MAX];
fgets(s, (char)sizeof(s), stdin);
s[strcspn(s, "\n")]='\0';
printf("Length: %d\n", length(s));
return 0;
}
Run Code Online (Sandbox Code Playgroud)