实验十一
一、实验内容
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #include<string.h> #define N 20 int main() { char str[N+1]; int i=0,j=0,k=0,m=0,n=0,z,a; printf("请输入一个字符串"); gets(str); a=strlen(str); for(z=0;z<a;z++) { if(str[z]>'A'&&str[z]<'Z') { i++; } else if(str[z]>'a'&&str[z]<'z') { j++; } else if(str[z]==' ') { k++; } else if(str[z]>'0'&&str[z]<'9') { m++; } else { n++; } } printf("大写字母有%d个,小写字母有%d个,空格有%d个,数字有%d个,其他有%d个\n",i,j,k,m,n); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> #define N 10 int main() { char str[]={"secret"},str1[N+1]; int i; for(i=1;i<4;i++) { printf("请输入密码"); scanf("%7s",str1); if(strcmp(str,str1)==0) { printf("密码正确,登陆成功\n"); break; } else { printf("密码错误,登录失败\n"); } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #include<string.h> #define N 80 int huwen(char str[N+1]); int main() { char str[N+1]; int a; printf("请输入一个字符串\n"); gets(str); a=huwen(str); if(a==0) { printf("这个字符串不回文"); } else { printf("这个字符串回文"); } return 0; } int huwen(char str[N+1]) { int i,j,num; num=strlen(str); for(i=0,j=num-1;i<j;i++,j--) { if(str[i]==str[j]) { continue; } else { return 0; } } return 1; }
二、实验总结
1、字符型数据要加单引号
2、数组开始要定义大小
3、在回文数程序中:(1)自定义函数中不用定义数组的长度数sum(2)在自定义函数中continue那不能用return代替,否则只能执行第一个与最后一个相等不能循环
(3)在自定义函数中要只用一个循环,可以将两个变量写在一起(4)注意数组的长度是从一开始的,数组下标是从零开始的,在倒数时注意应该减一
三、课程体会
1、经过这一个学期的学习我对C语言有了进一步的认识,开始只是对编程有一个大概的了解,不知道该怎样写代码,只是知道有哪些有语言而已。在这一个学期中写了许多次代码,一次又一次的修改,使我填补了自己的知识漏洞。
2、在学习C语言时我认为大家要学会用自己方式理解与分析知识点,学会做笔记。只是听老师讲是不够的,学生要学会用自己的思维来理解课堂上的知识点。在写代码时可以尝试使用多种途径。多做练习。
3、我认为采用博客方式交作业的方式很好,老师有充足的时间看每一个学生写的代码,提出不足,让学生改正。可以实现课下的充分交流。在我的学习过程中这种方式给我提供很大的交流平台。
4、助教可以再多一些减轻学长的负担。