| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 622 人关注过本帖
标题:关于函数调用中读取字符串字符出错的解决方法
只看楼主 加入收藏
Xovery
Rank: 2
等 级:论坛游民
帖 子:29
专家分:14
注 册:2022-10-22
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:2 
关于函数调用中读取字符串字符出错的解决方法
程序代码:
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;
}
搜索更多相关主题的帖子: end 调用 函数 char 读取 
2023-01-25 15:00
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
错误太多,
其中之一是 while (*end != '\0'); 后面多了个分号
2023-01-26 11:30
万家乐
Rank: 1
等 级:新手上路
威 望:1
帖 子:4
专家分:0
注 册:2023-2-15
收藏
得分:0 
在你的 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 函数就可以正确地计算出字符串的长度,而不会出现错误。
2023-02-15 21:42
快速回复:关于函数调用中读取字符串字符出错的解决方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014903 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved