如何从char数组中逐字逐句阅读?

时间:2013-11-16 19:56:12

标签: c arrays string

我需要创建一个程序,从文本文件读取一行,修改它,然后将单词打印到另一个由偶数个字符组成的文本文件中。我通过怀疑“fgets”获得一条线并将其存储到一组字符中。但是,如何逐字逐句地阅读? (“Word” - 是除空格外的字符流)。

感谢。

3 个答案:

答案 0 :(得分:1)

查看此function,然后根据以下示例:

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}

答案 1 :(得分:0)

您可能想查看sscanf。它将字符串/字符数组作为参数,并从中读取您在格式字符串中描述的内容。对于单词,您可以使用%s并检查结果,它不是标点符号或您定义为单词的内容。

答案 2 :(得分:0)

要从文件中读取,您可以使用fscanf(file,"%s",cString)它可以解决问题。要回答标题中的问题,您可以使用fscanf(cStringSource,"%s",cString)

要逐字阅读,您只需简单地进入循环。

参考:http://en.cppreference.com/w/c/io/fscanf

还有一种名为strtok的东西。