C语言中怎么输入数字和字母?

比如说,我要输入一个东西。如果输入字母a就打印a,如果输入数字比如4就打印数字的平方16。
该用什么函数输入?
问题补充:厄..我的意思你理解错了.
我是说就输入一个东西.不是char和int分2行输入。
输入一行东西就判断它是字母还是数字。如果是字母就输出字母。如果是数字就输出它的平方,还有数字不一定是个位数。。。
最好有具体代码

大致提供下个人想法,用C语言中的ctype.h 文件中的 isdigit()函数来判断。虽然说该函数只能判断0~9的数,但是,你可以把所有输入的东西当成是一个数组形式。调用该函数,用指针来逐一判断其每一位。比如说如果是输出,1111可以用isdigit()判断其每一位都为真,这就为数字。输入ajkjlk,判断其每一位都为假,就可以识别该输入为字符,打印其。当然啦如果又有数字,又有字符。其或运算和且运算的结果不一致,返回错误。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-24
void main()
{
printf("首字母为数字输出数字,为字母输出字母,舍弃以首字母不匹配的!\n");
char c[256],a[256];
int i,j=0,n;
printf("请输入:");
scanf("%s",c);
if(c[0]>='a'&&c[0]<='z'||c[0]>='A'&&c[0]<='Z')
{
for(i=0;i<strlen(c);i++)
if(c[i]>='a'&&c[i]<='z'||c[i]>='A'&&c[i]<='Z')
a[j++]=c[i];
a[j]='\0';
printf("%s\n",a);
}
if(c[0]>'0'&&c[0]<='9')
{
j=0;
for(i=0;i<strlen(c);i++)
if(c[i]>='0'&&c[i]<='9')
a[j++]=c[i];
a[j]='\0';
n=atoi(a);
printf("%d\n",n*n);
}
if(c[0]=='0')
printf("0\n");
}
第2个回答  2009-08-24
你的问题我这样理解的
输入一个数字或者字符
如果是数字 输出其平方
如果是字符 输出该字符
这个意思?
第3个回答  2009-08-24
#include <stdio.h>
void main()
{
char an[255];
printf("请输入字符串:");
scanf("%s",&an);
printf("%s\n",&an);
int i=0;
int num=0;
char an1[255];
while(1)
{
if (an[i]==NULL)
{
break;
}
num=0;
if (an[i]>='0'&&an[i]<='9')
{
sscanf(&an[i],"%d",&num);
printf("%d",num*num);
while (an[i]>='0'&&an[i]<='9')
{
i++;
}
}
else
{
sscanf(&an[i],"%[^0-9]",an1);
printf("%s",an1);
while(1)
{
if (an[i]==NULL)
{
break;
}
if (an[i]>='0'&&an[i]<='9')
{
break;
}
else
{
i++;
}
}

}
}
printf("\n");
}
输入:12qq11
输出144qq121
第4个回答  2009-08-24
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
char s[200];
int i,a;
int isNumber=1;
gets(s);
for(i=0;i<(signed)strlen(s);i++)
if(s[i]<'0'||s[i]>'9')
{
isNumber=0;
break;
}
if(isNumber)
{
a=atoi(s);
printf("%d\n",a*a);
} else
{
puts(s);
}
return 0;
}本回答被提问者采纳
相似回答