我想输入一个文件中的单词,这些单词由任何不是字母的东西分隔。在 C 中是否有一种类似于在 Java 中使用 \W 预定义字符类的简单方法?
我应该如何处理这个?
谢谢。
您可以使用is_
定义在<ctype.h>
.
例如,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
保存分隔符
一般的字符类和 \W 特别是真的与 Java 无关。它们只是正则表达式支持的一部分,可用于许多语言,包括 GNU C。请参阅GNU C 库正则表达式。