微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用 '\0' 替换字符串中字符的所有实例不起作用

如何解决用 '\0' 替换字符串中字符的所有实例不起作用

文件包含字符串:

40,30,20,10            //newline at end
50,60,70,80

这是重要的代码

delim = ','
    while(getline(&buf,&bufcap,stdin) > 0) {
        int i;
        for(i=0; i < strlen(buf2); i++) {
            if(buf[i] == delim) {
                buf[i] = '\0';
            }
        }

        printf(buf);

产量:

4050

我想要的:

40\030\020\010
50\060\070\080

解决方法

'\0' 为空字符,所有字符串函数在到达该字符时将停止,因为它表示字符串的结尾

,

'\0' 标记字符串的结尾,因此 strlen 将在第一次到达时返回。因此,您的循环将在第一个分隔符后停止。字符文字中的反斜杠始终标记转义码。与下一个字符结合,用于特殊字符。您可以使用 '\\' 输入文字反斜杠,因此您必须插入两个字符:'\\''0'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。