100分!!!!C语言 输入姓名,然后判断是否为汉字或字母,如果非汉字字母则报错。

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:51:54
输入姓名,然后判断是否为汉字或字母,如果非汉字字母则报错。
请主要写出判断的语句。应该用什么函数进行判断?100分!!

利用ASCII码,如果是ASCII码的值是负数(因为规定汉字的最高位是1而ASCII码的最高位是0),则为汉字~~至于字母,对照ASCII码的范围可以确定~~
另外还要注意的是:一个汉字由两个字节表示,所以所有负值个数的一半才是汉字的个数~~~

举个例子
#include<iostream>
#include<string>
using namespace std;
void main()
{
int sum=0;
char a[123];
cin.getline(a,123);
for(int i=0;a[i]!='\0';i++)
{
if(a[i]<0) sum++;
}
cout<<sum/2<<endl;
}

输入:aghlhl暗杀师傅iasdlk
试试看~~

检查ASCII字符的范围
0-32 控制字符
65-113为可见字符(0。。9。。A...z...)
128以下是功能符号

在128以上和0以下就不是键盘字符了

#include "stdio.h"
#include"string.h"
void main()
{
char a[100];
int i,flag=0,j;
scanf("%s",a);
j=strlen(a);
for(i=0;i<j;i++)
{
if((a[i]<='z'&&a[i]>='a')||(a[i]>='A'&&a[i]<='Z'))
flag=1;
else flag=0;