1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include <stdio.h> #define S 100 int main() { char str[S+1]; int a=0,b=0,c=0,d=0,e=0,i; printf("输入字符串 "); gets(str); for(i=0;str[i]!=' ';i++) { if(str[i]>='A'&&str[i]<='Z') { a++; } else if(str[i]>='a'&&str[i]<='z') { b++; } else if(str[i]>='0'&&str[i]<='9') { c++; } else if(str[i]==' ') { 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,a=0; i=0; while(i<=2) { printf("输入密码 "); scanf("%7s",input); if(strcmp(password,input)==0) { printf("密码正确!"); break; } if(i==2) { printf("密码输入错误三次,无法再次输入密码 "); break; } if(strcmp(password,input)!=0) { printf("密码错误,请重新输入 "); } i++; } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include <stdio.h> #include <string.h> #define N 100 int Str(char str[]); int main() { char str[N]; int n; printf("输入一串字符 "); n=Str(str); if(n==1) { printf("该字符串为回文数 "); } if(n==0) { printf("该字符串不是回文数 "); } return 0; } int Str(char str[]) { int i=0,j=0,k=0;; gets(str); k=strlen(str); for(i=0,j=k-1;i<=j;i++,j--) { if(str[i]!=str[j]) { return 0; } } return 1; }
实验总结:1.gets函数输入的字符串中可以包含空格,而scanf函数不能。
2.字符串的结束标志是' ';
3.使用strcmp(str1,str2),如果str1=str2,返回零。
4.strlen可以读取字符长度。
课堂体会
1.经过一学期C语言的学习,怎么着也写了上千行的代码了,对C语言也有了初步的认识。C语言需要掌握运用基础知识灵活运用
我感受到了C语言的神奇。编写程序时尽量优化程序,使程序简洁,C语言的编写时很自由的,一个题往往有几种写法。
2.编写程序时思路很重要,先想清思路,再进行编程。还要注意细节,输出的位置,括号的位置,标点的使用等都需要小心。
每次在绞尽脑汁后想出程序时的喜悦,只有真正尝试过的人才知道。我感觉代码还是要多练,才能更熟练。
3.采用技术博客提交作业这种形式,我感觉挺好。技术博客可以提高学生的积极性等。
学的好的可以早交作业,给编写程序没有思路的人提供思路,但是避免不了抄袭。
但总体来说还不错。所以如果下届学弟学妹入学,我还会继续推荐给他们。
4.我感觉老师和助教都很有责任心,每次问老师,老师都很耐心的讲,我很感谢老师,把我们领进了C语言的大门。感谢老师和助教。