第十一次作业
Posted 宁萌啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一次作业相关的知识,希望对你有一定的参考价值。
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int i,n,capital=0,lowercase=0,number=0,other=0,space=0; char alphabetic[30]={\'\\0\'}; printf("请输入字符串:\\n"); gets(alphabetic); printf("您输入的为:\\n"); puts(alphabetic); n=strlen(alphabetic); if(n>30) { printf("超出30!"); exit(0); } else { for(i=0;i<n;i++) { if(alphabetic[i]>=\'A\'&&alphabetic[i]<=\'Z\') { capital++; } else if(alphabetic[i]>=\'a\'&&alphabetic[i]<=\'z\') { lowercase++; } else if(alphabetic[i]==\' \') { space++; } else if(alphabetic[i]>=\'0\'&&alphabetic[i]<=\'9\') { number++; } else { other++; } } printf("一共有%d个字符,其中大写字母有%d个,小写字母有%d个,数字有%d个,空格有%d个,其他字符有%d个",n,capital,lowercase,number,space,other); } return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> int main() { int i; char password1[17]={\'\\0\'},password2[17]={\'h\',\'e\',\'l\',\'l\',\'o\',\'1\',\'2\',\'3\',\'3\',\'2\',\'1\',\' \',\' \',\'.\',\'.\'}; for(i=0;i<3;i++) { printf("请输入密码:\\n"); gets(password1); if(strcmp(password1,password2)==0) { printf("系统欢迎您的登录!@-@"); break; } else { printf("输入错误,您还有%d次机会",2-i); continue; } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int i,number,length,j; char palindrome[50]={\'\\0\'}; printf("请输入您的字符串:\\n"); gets(palindrome); length=strlen(palindrome); if(length>50||length<0) { printf("请输入您的字符串:\\n"); } else { for(j=0;j<length;j++) { if(palindrome[j]==palindrome[length-1-j]) { if(j>length-1-j) break; else continue; } else { printf("这个数不是回文数。\\n"); exit(0); } } printf("这个数是回文数。"); } return 0; }
实验总结:这次的实验总体来说比以往都简单了,感觉还可以,不是很麻烦,就是字符数组的定义还是有些不太理解,额,我的第三题的截图等我回学校再放上去,额,也就这样吧。
知识点总结:1.二维字符数组同样可以省略第一维长度,但第二维长度不能省略。
2.字符数组的最后以\\0结束,\\0没有长度,只占一个内存空间。
3.C语言允许用字符串的方式对数组做初始化赋值。
以上是关于第十一次作业的主要内容,如果未能解决你的问题,请参考以下文章