在C中查找字符串的长度(不使用strlen)

Ash*_*wal 0 c

下面的代码不会打印任何内容 -

int main() {

        char *input = "This is a string";
        find_length(input);
        return 0;

}
void find_length(char *input){

    printf("%s", input);
    int length = 0;
    while(input[length]!='\0');
    {
        length++;
        printf("%i", length);
    }

}
Run Code Online (Sandbox Code Playgroud)

Mys*_*ial 20

循环后面有一个额外的分号:

while(input[length]!='\0');
                          ^ does not belong here!!!
Run Code Online (Sandbox Code Playgroud)

所以它陷入无限循环.摆脱它.


此外,可能存在流缓冲.尝试添加一些\n.或者调用fflush(stdout)刷新输出流.

void find_length(char *input){

    printf("%s\n", input);
    int length = 0;
    while(input[length]!='\0')  //  remove ;
    {
        length++;
        printf("%i\n", length);
    }

}
Run Code Online (Sandbox Code Playgroud)