判断输入的字符串是否是一个合法的C语言标识符。简单的字符串处理,不过你要记得字符串满足什么样的条件才算是合法的C语言标识符——
1只能由字母、数字、下划线组成;
2数字不能是首字符(比如3he就不合法)
剩下的就是字符串处理的细节,要细心一点。
#include <cstdio>
#include <cctype>
/**
* 合法的标识符由下划线、字母、数字(数字不能开头)
*/
const int MAX_SIZE = 50 + 2;// 字符串长度 + 预留给换行符'\n'和终止符'\0'的两个长度
char token[MAX_SIZE];
//#define yangyuan
int main()
{
#ifdef yangyuan
freopen("in.txt", "r", stdin);
#endif // yangyuan
int n;
scanf("%d", &n);
getchar();
while (n--)
{
fgets(token, MAX_SIZE, stdin);// 注意fgets会将最后的换行符'\n'读入
if (0 == isalpha(token[0]) && '_' != token[0]) // 只能以字母或者下划线开头
{
printf("no\n");
continue;
}
int yes = true;
for (int i = 0; i < MAX_SIZE && token[i] != '\n' && token[i] != '\0'; ++i)
{
if (0 == isalnum(token[i]) && '_' != token[i])// 不是字母数字且不是下划线
{
yes = false;
break;
}
}
if (yes)
printf("yes\n");
else
printf("no\n");
}
return 0;
}