改了好久,希望能帮到大家
题目:
输入一个字符串,判断其是否是C的合法标识符。
Input
输入数据包含多个测试实例,数据的第一行是一个整数n,表示测试实例的个数,然后是n行输入数据,每行是一个长度不超过50的字符串。
Output
对于每组输入数据,输出一行。如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
Sample
解答:
#include #include #include
int main() {
int n; scanf("%d",&n);//输入组数
getchar();//这个地方我看了好久
//gets函数会识别到n后的\n,所以要加getchar,将\n回收掉
int ff; //定义一个变量以后要用
while(n--) { ff=99; char jj[56]; gets(jj);//用于输入字符串 int i; //for(i=0;i // { // printf("jj[%d]=%c\n",i,jj); // }//可以用于检测 if(jj[0]>='0'&&jj[0]<='9') { printf("no\n"); ff=88; } else//第一个数字不是数字 { for(i=0;i { if(!((jj>='0'&&jj<='9')||(jj>='a'&&jj<='z')||(jj>='A'&&jj<='Z')||(jj=='_') )) { printf("no\n"); ff=88; break; } } if(ff==99) printf("yes\n"); } }
return 0; }
重点介绍:
1. `gets`函数是C语言中的一个输入函数,用于从标准输入(通常是键盘)读取一行字符串,并将其存储到指定的字符数组中。它会读取字符,直到遇到换行符`\n`为止,然后将换行符替换为字符串结束标志`\0`。
示例代码
#include
int main() {
char str[100];
gets(str);//不用加取地址
return 0;
}
可见gets函数可以读空格
如果用scanf("%s",jj);来输入的话,不能将空格输入,结果如下
|