如果是int型即使是字母也会转化成数字的,想判断输入后数据到底是数字还是字母就需要自己再编算法了。因为如果是数字的话可以组合,比如123,如果是字符的话就是只有一个了,比如abc结果只是97
如果是以字符类型输入数字,可以检查输入的ascii码来确定,只要是48-57就确定是数字了,在减去48不就是需要的数值了,或者还可以直接用atoi函数将字符串转换为数值。
循环读取每一个字符,再进行条件判断,分为大写英文字母、小写字母、数字、其他字符,分别输出upper letter、lower letter、digit、other character。把源程序复制一下
#include<stdlibh>
#include<stringh>
int main()
{
char ch[100];
int i;
int length;
printf("please input a string:\n");
scanf("%s",ch);
length=strlen(ch);
printf("the length is %d\n",length);
for(i=0;i<length;i++)
{
if(ch[i]<='Z' && ch[i]>='A')
{
printf("the %d character is upper letter\n",i+1);
}
else
{
if(ch[i]<='z' && ch[i]>='a')
{
printf("the %d character is lower letter\n",i+1);
}
else
{
if(ch[i]<='9' && ch[i]>='0')
{
printf("the %d character is digit\n",i+1);
}
else
{
printf("the %d character is other character\n",i+1);
}
}
}
}
return 0;
}
运行结果,如果有什么不明白的还可以问我
1如果是“判断字符是不是某个字符”
if (ch == 'A')
ch为char型字符,scanf或者getchar来获取。这里用'A'来表示“某个字符”
2如果是“判断字符串里有没有某个字符”
for (i=0;i<len;i++)
{
if ((str+i) == 'A')
{
}
}
len是字符串长度,str是char指针,指向字符串的首地址。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)