C标准库函数来检查char *是否是一个单词?

时间:2010-11-29 14:39:31

标签: c

从文件中读取一行并将该行拆分为标记后,我需要检查标记是否只包含字母字符[a-zA-Z]。 C标准库中是否有某种功能可以检查?我可以使用regex.h来检查这个,但我认为这是夸张的。

当然,我可以编写一个循环遍历令牌并检查每个字符的函数,但我不想重新发明轮子。

P.S。:使用第三方库不是一种选择。

5 个答案:

答案 0 :(得分:6)

当然:

#include <ctype.h>

int isalpha(int ch) // is alphabetic?
int isalnum(int ch) // is alphanumeric?

答案 1 :(得分:3)

您在ctype.h

中定义了所有这些功能
   int isalnum(int c);
   int isalpha(int c);
   int iscntrl(int c);
   int isdigit(int c);
   int isgraph(int c);
   int islower(int c);
   int isprint(int c);
   int ispunct(int c);
   int isspace(int c);
   int isupper(int c);
   int isxdigit(int c);

答案 2 :(得分:3)

如Kos所述,isalpha(int ch)isalnum(int ch),但这些不是char *函数。用isalpha编码你自己并且alnum应该很容易,但你必须要小心:如果你打算处理特殊字符,检查你的语言环境(isalpha取决于它们)。

答案 3 :(得分:3)

Strspn将完成这项工作。

基本概念是给它一个字符串,并返回由特定列表中的字符组成的最长片段的长度。 将a-z和A-Z添加到该列表中。如果从strspn返回的值与strlen相同,那么你很高兴。

答案 4 :(得分:-2)

C标准库与char *相关的​​函数非常短。请检查此链接以查看是否有任何帮助: http://www.cplusplus.com/reference/clibrary/cstring/