小编Pau*_*use的帖子

不打印程序的返回值时,计算字符串长度不正确

长度是假设当通过弦时返回计数器走了多远.但是,它只会在预先打印时返回正确的值.如果我注释掉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)

c arrays string loops

5
推荐指数
2
解决办法
103
查看次数

标签 统计

arrays ×1

c ×1

loops ×1

string ×1