第十一次作业

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语言允许用字符串的方式对数组做初始化赋值。

 

以上是关于第十一次作业的主要内容,如果未能解决你的问题,请参考以下文章

第十一次作业

第十一次作业

201621123042《java程序设计》第十一次作业

第十一次作业

第十一次作业

2001621123047《java程序设计》第十一次作业