有空格的话,你这种读取方式会被读取成两个字符串,而且判断方式中》=字母也是行的,你没有=号,而且对合法字符串的判断思路也不对,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"<
cout<<"no"<
else
cout<<"no"<
return 0;
}
对于读取行可以这样
char str[100];
while(gets(str))
{
cout << str << endl;
}
问题是???