繁体   English   中英

从C中的文本文件读取,在模式中找到换行符和空格

[英]Reading from textfile in C, finding newline and blank space in pattern

我正在从文本文件中读取内容,并且有一个模式。 我目前正在借助令牌读取文件。 有很多行,并且模式完成后,如果有空格或行中断,则模式中断。 到目前为止,这是我尝试过的:

char newLine[10];
strcpy(newLine, "\n");
int stringValue;
....
*readfromfile*
{
    ...
    stringValue = strcmp(token, newLine);
    if(stringValue == 0)
    {
        ...

因此,如果在该行之后有新行或空白,我希望if语句通过。 有谁知道如何解决这个问题? 是令牌不获取字符“”和“ \\ n”。 如果是这样,我该怎么办?

只需在调用strcmp()之前trim(newline) strcmp() trim()将删除字符串开头或结尾的所有空格。

您可以在C 找到有关此问题的示例。

还有另一种方法:如果您不想通过使用strcmp()比较newLine末尾的newLine ,请改用strncmp() (带有token的长度)。

根据您的评论,您先读取缓冲区,然后要删除字符,然后按以下示例操作(假设您的缓冲区大小为1024)

int RemoveTokens(char *string)
{
   char  buf[1024] = {0};
   int   i         = 0;
   int   j         = 0;

   strncpy(buf, string, 1024);
   memset(string, 0x00, 1024);
   for (i=0; i<1024; i++)
   {
      if (' ' != buf[i] && '\n' != buf[i])
      {
         string[j] = buf[i];
         j++;
      }
   }
}

希望它可以帮助您轻松实现。 :D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM