杭电2024题 题目要求:输入一个字符串,判断其是否是C的合法标识符。

2025-03-14 00:55:34
推荐回答(3个)
回答1:

有空格的话,你这种读取方式会被读取成两个字符串,而且判断方式中》=字母也是行的,你没有=号,而且对合法字符串的判断思路也不对,c语言标准有两个,一个是字符串只能由字母,数字,下划线组成,第二是首位只能是下划线或字母,你那根据长度判断有无空格,若有其它字符%,。等也不能判断
另附本人代码如下,将你的稍做改动
#include
#include
#include
using namespace std;
int main()
{
char str[51];
int n,i,j;
scanf("%d\n",&n);
for( j=0; j{
int length;
gets(str);
length=strlen(str);
if(str[0]=='_'||(str[0]<='Z'&&str[0]>='A')||(str[0]<='z'&&str[0]>='a'))
{
for(i=1;i {
if(str[i]=='_'||(str[i]<='Z'&&str[i]>='A')||(str[i]<='z'&&str[i]>='a')|| ( str[i]<='9' && str[i]>='0'))
;
else
break;
}
if(i == length)
cout<<"yes"< else
cout<<"no"< }
else
cout<<"no"<}
return 0;
}

回答2:

对于读取行可以这样
char str[100];
while(gets(str))
{
cout << str << endl;
}

回答3:

问题是???