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

C-如何在文本文件中用\ n替换\ n

如何解决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
        }
    }
}
,

我将使此功能更通用:

  1. 最好将指针返回到字符串。它允许您直接在函数调用或赋值中使用它
  2. 不仅对于程序中的这种替换,功能可能更为通用。
  3. 添加一些简单的参数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 举报,一经查实,本站将立刻删除。