第十一次作业

一:实验内容

1.

实验要求:.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)

代码:

#include<stdio.h>
#define N 100
int main()
{
    int i,number[5]={0};
    char c[N];
    printf("请输入一串字符。
");
    gets(c);
    for(i=0;c[i]!='';i++)
    {
        if(c[i]>='A'&&c[i]<='Z')
            number[0]++;
        else if(c[i]>='a'&&c[i]<='z')
            number[1]++;
        else if(c[i]==' ')
            number[2]++;
        else if(c[i]>='0'&&c[i]<='9')
            number[3]++;
        else
            number[4]++;
    }
    printf("大写字母有%d个
小写字母有%d个
空格有%d个
数字有%d个
其他字符有%d个",number[0],number[1],number[2],number[3],number[4]);
    return 0;
}

运行结果:

2.

实验要求:利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
    int n=2;
    char password[]="yangge",input[100];
    printf("请输入密码,你有三次机会:
");
    do
    {
        gets(input);
        if(strcmp(password,input)==0)
        {
            printf("密码正确,成功登陆
");
            break;
        }
        else
        {
            if(n==0)
            {
                printf("登陆失败
");
            }
            else
            {
                printf("输入错误,请重新输入,你还有%d次机会
",n);    
            }
            n--;
        }
    }
    while(n>=0);
    return 0;
 }

运行结果:

3.

实验要求:编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。

代码:

#include<stdio.h>
#include<string.h>
#define N 100
int palindrome(char c[]);
int main()
{
    char str[N];
    printf("请输入一个字符串:
");
    gets(str);
    if(palindrome(str))
    {
        printf("这个字符串是回文。
");
    }
    else
    {
        printf("这个字符串不是回文。
");
    }
    return 0;
}
int palindrome(char c[])
{
    int i,j=-1;
    j=strlen(c)-1;
    for(i=0;i<j;i++,j--)
    {
        if(c[i]!=c[j])
        {
            return 0;
        }
    }
    return 1;
}

运行结果:

二:实验总结

1.使用除gets和puts以外的字符串处理函数时要记得使用头文件string.h。

2.gets函数: 等不会读入数组,会转化为,会将其从缓冲区读走。

3.C语言允许用字符串的方式对数组做初始化赋值。

原文地址:https://www.cnblogs.com/kbx1602/p/6195125.html