c++怎样识别用户输入的是数字或字符数组?

c++中,存在某班学生数据,根据学号查询学生信息和根据姓名查询学生信息同时进行,比如输入001,则输出001号学生的信息,输入jane,则输出jane的信息。c++怎样识别用户输入的是数字或字符数组?

以字符串格式读入数据,然后判断串是否都由数字字符组成的,是则为学号,否则就是姓名。

char s[30];
int i,flag = 1;
scanf("%s",s);
for(i = 0; s[i] && flag; ++i) {
    if(s[i] < '0' || s[i] > '9')
        flag = 0;
}
if(flag) { /* 学号 */ }
else { /* 姓名 */}

追问

怎样循环输入输出?

追答

不太明白追问的意思。

追问

就是001号查完能继续输入查询

追答char s[30];
int i,an,flag = 1;
while(1) {
printf("继续(1/0):");
scanf("%d",&an);
if(an == 0) break;
scanf("%s",s);
for(i = 0; s[i] && flag; ++i) {
if(s[i] < '0' || s[i] > '9')
flag = 0;
}
if(flag) { /* 学号 */ }
else { /* 姓名 */}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-18
你设2个 分支啊 第一个 根据学号查询 这里只接受数字
第2个根据姓名查询 这里只接受字符
不就行了
第2个回答  2014-04-18
首先c++是C语言的的一个扩充的面向对象的语言,在C语言中数字和字符的关系是通过(数字:有整型 int,浮点型 float,doulbe;字符:有字符型 char)输出printf的类型是%d(数字输出),还是%c(字符输出),在C++语言中数字和字符与C语言一样,只有输出方式(cout)有所不同cout是标准输出。所以,C++识别用户输入的是数字还是字符数组是通过C++ main函数中的数字的定义类型 ,和字符数组定义(string ),又因为C++的标准输出COUT的输出方式是根据main函数中的类型来输出的数字类型就输出数字,输出字符数组就输出字符。
第3个回答  2014-04-18
有函数吧,isdigital() isalpha()什么的,也可以自己实现函数功能啊。。
数字和字母都用ASCII码记录,分别有不同的值区间,根据输入的ASCII码判断其是数字还是字母就可以,判断了之后就可以进行下一步处理