对于C语言来说,没有专门用于字符串的变量,所以需要通过字符数组进行处理
一个汉字占两个字节,在设置数组长度的时候要注意长度(vs2010会帮助判断是否越界,但有些编译器不会)
输出单个字符使用%c,输出字符串使用%s
这里的字符统计是通过判断ASCII码是否在a~z或A~Z之间、0~9之间、其余都算作一类
所以汉字是归类在"other"里的
#include<stdio.h> #include<stdlib.h> int main() { //初始化 int character=0,digit=0,other=0; char *p="HELLO!",s[20]; printf("输入时仅限字母,数字,汉字(一个汉字占两个other字节)"); //输出问候,赋值 printf("\n%s\n",p); p=s; //输入字符串 printf("请输入:"); scanf("%s",s); //s本来就代表地址,不用再加& //统计 while(*p!='\0') { if((*p>='A' && *p<='Z') || (*p>='a' && *p<='z')) ++character; else if((*p>='0') && (*p<='9')) ++digit; else ++other; p++; } //输出 printf("\nchaceter=%d\ndigit=%d\nother=%d\n",character,digit,other); system("pause"); return 0; }