注册 登录
编程论坛 C语言论坛

关于函数调用中读取字符串字符出错的解决方法

Xovery 发布于 2023-01-25 15:00, 881 次点击
程序代码:
int my_strlen(char* str)
{
    char* start = str;
    char* end = str;//此处逐步操作时报错
    while (*end != '\0');
    {
        end++;
    }
    return end - start;
}
int main()
{
    char arr[] = "bit";
    int len = my_strlen(arr);
    printf("%d\n", len);
    printf("hello");
    return 0;
}
2 回复
#2
rjsp2023-01-26 11:30
错误太多,
其中之一是 while (*end != '\0'); 后面多了个分号
#3
万家乐2023-02-15 21:42
在你的 my_strlen 函数中,最后一个 while 循环永远不会结束,因为在循环条件中多了一个分号,导致循环体一直被跳过,所以在访问 end 指针时会导致错误。

为了解决这个问题,你需要删除最后一个分号,使得 while 循环可以正确地执行。修改后的代码如下:

sql
Copy code
int my_strlen(char* str)
{
    char* start = str;
    char* end = str;
    while (*end != '\0')
    {
        end++;
    }
    return end - start;
}
这样,my_strlen 函数就可以正确地计算出字符串的长度,而不会出现错误。
1