【发布时间】:2011-08-07 10:17:54
【问题描述】:
我想输入文件中的单词,这些单词由任何非字母分隔。在 C 中是否有一种类似于在 Java 中使用 \W 预定义字符类的简单方法?
我应该如何处理这个问题?
谢谢。
【问题讨论】:
-
查看函数
fgetc(),isalpha(),可能是ungetc()
标签: c input word char delimited
我想输入文件中的单词,这些单词由任何非字母分隔。在 C 中是否有一种类似于在 Java 中使用 \W 预定义字符类的简单方法?
我应该如何处理这个问题?
谢谢。
【问题讨论】:
fgetc(),isalpha(),可能是ungetc()
标签: c input word char delimited
一般的字符类和特别是 \W 确实与 Java 无关。它们只是正则表达式支持的一部分,可用于多种语言,包括 GNU C。请参阅GNU C library Regular Expressions。
【讨论】:
您可以使用<ctype.h> 中定义的is_ 系列函数。
例如,isalpha() 会告诉您某物是否是字母字符。 isspace() 会告诉你是否有空格。
【讨论】:
你可以使用fscanf(前提是你保证了最大的单词长度)
char temp_str[1000];
char temp_w[1000]
while(fscanf(file, "%[a-zA-Z]%[^a-zA-Z]", temp_str, temp_w) != EOF) {
printf("STR: %s\n", temp_str);
}
编辑:这应该可以解决问题,temp_str 将保存字母序列,temp_w 将保存分隔符
【讨论】: