如何解决C-如何在文本文件中用\ n替换\ n
我是C语言的新手,正在挣扎。基本上,我需要做的是遍历一个数组,找到\n
,然后将其替换为null。我有点想如何解决这个问题。我知道了。
以伪方式,基于其他最少的编码经验,我要遍历数组(for循环),如果字符串= = "\n"
,则将其替换为null,如果字符串已经为null,则它表示我们已经结束了,所以您必须休息。
void replaceNwO (char* txtPtr) {
char *txtPtr = strstr(filepath,"\n");
for (i = 0; i < TEXT_LEN; i++) {
if(txtPtr != null) {
strncpy(txtPtr,"\0",1);
char* = strstr(filepath,"\n");
}
else {
i++;
}
}
有人可以帮我看看我做错了什么吗?指针使我感到困惑。我的逻辑是迭代给定的文件路径名(目录中的文本文件),迭代直到达到文本长度容量,然后用空行字符替换那些新的行字符。否则,请继续迭代。
我真的在尝试...但是经验丰富的眼睛可能会有所帮助
解决方法
遍历字符串,直到获得空字符。在每个步骤中,检查当前字符是否为换行符,在这种情况下,请用空字符替换它。
要替换字符,只需通过指针分配即可。
void replaceNwO (char* txtPtr) {
for (; *textPtr != '\0'; textPtr++) {
if (*textPtr == '\n') {
*textPtr = '\0'; // replace newline with null
}
}
}
,
我将使此功能更通用:
- 最好将指针返回到字符串。它允许您直接在函数调用或赋值中使用它
- 不仅对于程序中的这种替换,功能可能更为通用。
- 添加一些简单的参数chack(在leat NULL指针处不会被取消引用。
char *replace(char *haystack,char needle,char replace,int breakAfterFirst)
{
char *wrk = haystack;
if(haystack)
{
while(*wrk)
{
if(*wrk == needle)
{
*wrk == replace;
if(breakAfterFirst) break;
}
wrk++;
}
}
return haystack;
}
,
void replaceNwO (char* txtPtr) {
char *txtPtr = strstr(filepath,"\n");
while(*txtPtr != '\0')
{
if(*txtPtr == '\n')
{
*txtPtr = '\0';
break;
}
else
{
txtPtr++;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。