1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #define N 100 int main() { char a[N]; int i,b=0,c=0,d=0,e=0,f=0; printf("请输入一组字符串,以回车结束 "); gets(a); for(i=0;i<N;i++) { if(a[i]<97&&a[i]>=65) { b++; } else if(a[i]<123&&a[i]>=97) { c++; } else if(a[i]==' ') { d++; } else if(a[i]<'9'&&a[i]>'0') { e++; } else f++; } printf("共有%d个大写字母,%d个小写字母,%d个空格,%d个数字,%d个其他字符 ",b,c,d,e,f); return 0; }
实验总结,数字0的ASCII值是48,‘0’的是0,应当注意。
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> int main() { char a[]="secret",b[8]; int i,c; printf("请输入密码 "); scanf("%7s",b); for(i=0;i<3;i++) { if(strcmp(a,b)==0) { printf("登陆成功 "); } else if(i==2&&strcmp(a,b)!=0) { printf("登录失败"); break; } else { printf("密码错误,你还可以再输入%d次 ",2-i); scanf("%7s",b); } } return 0; }
实验总结:strcmp(a,b)比较字符串的特定函数。
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #define N 100 int num(char a[],int i); int main() { char a[N],i; int b; printf("请输入字符串 "); scanf("%s",a); for(i=0;a[i]!='