如何解决用 '\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 举报,一经查实,本站将立刻删除。