1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #include<string.h> #define N 1000 int main() { char str[N+1]; int i,a=0,b=0,c=0,d=0,e=0; printf("请输入一串字符: "); gets(str); for(i=0;i<strlen(str);i++) { if(str[i]>=65&&str[i]<=90) { a++; } else if(str[i]>=97&&str[i]<=122) { b++; } else if(str[i]==32) { c++; } else if(str[i]>=48&&str[i]<=57) { d++; } else { e++; } } printf("大写字母%d个,小写字母%d个,空格%d个,数字%d个,其他字符%d个",a,b,c,d,e); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> int main() { char password[]="secret",input[8]; int i; printf("ÇëÊäÈëÁùλÃÜÂë: "); i=1; scanf("%7s",input); while(1) { if(strcmp(password,input)==0) { printf("µÇ½³É¹¦ "); break; } printf("ÃÜÂë´íÎóÇëÖØÐÂÊäÈë "); if(i>=3) { printf("ÕË»§Òѱ»¶³½á "); break; } scanf("%7s",input); i++; } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #include<string.h> #define N 100 int panduan(char str[N]); int main() { int a; char str[N]; printf("ÇëÊäÈëÒ»¸ö×Ö·û´® "); gets(str); a=panduan(str); if(a==1) { printf("ÊÇ»ØÎÄÊý "); } else if(a==0) { printf("²»ÊÇ»ØÎÄÊý "); } return 0; } int panduan(char str[N]) { int i,j,n; n=strlen(str)-1; for(i=0,j=n-i;i<=j;i++,j--) { if(str[i]!=str[j]) { return 0; } } return 1; }
实验总结:
1. 字符串的处理函数的头函数为string.h 字符串比较strcmp(字符串1,字符串2)字符串长度的函数strlen
2.输入字符串时%s是不能输入空格,gets可以输入空格
3.字符串结束的标志是‘0’ 所以存入数组时数组长度要加一位
课程体会
1.学了一个学期,代码写的也得上千行了吧,刚开学时,完全不懂c语言是个什么东西,更不知道c语言能干什么,一提计算机想到的就是黑客,后来才知道c语言是计算机编程语言,不需要任何运行环境支持便能运行的编程语言,可以自己写代码,编出小的程序,或者小游戏。
2.我认为学习c语言上课一定要好好听课,关于课本,我本人是没怎么看过,课本比脸都白,还一定要多写代码,没事时,在玩游戏之余打开c写写代码也是比较享受的。关于教训,就是写博客随笔的一定记得保存草稿,否则的话费半天劲写的东西说没就没。
3.博客这种提交作业的形式,还是比较好的,相当于系统的把自己写的实验又存了起来,想看时随时可以看,还有在写实验题时,遇到磕绊可以上博客看看系里大神们写的代码,作参考;还能看到同学们不同的写代码的思路。但是问题来了,就会有同学借此抄袭。关于下届学弟学妹们,当然会推荐给他们继续这种教学形式了。
4.感谢老师和助教,你们都很好,耐心的指导了每位有问题的同学,很有责任心,谢谢助教用自己的课余时间来帮助我们这群初学的学弟学妹们,还有谢谢老师不辞辛苦的看55位同学的所写的代码,对于我们学习c语言帮到了很多。