第十一次作业

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

#include<stdio.h>
int main()
{
    char s[100];
    int d,x,y,z,q,i;
    gets(s);
    d=x=y=z=q=0;
    for(i=0;s[i];i++)
        if(s[i]>='A' && s[i]<='Z')d++;
        else if(s[i]>='a' && s[i]<='z')x++;
        else if(s[i]>='0' && s[i]<='9')y++;
        else if(s[i]==' ')z++;
        else q++;
   printf("大写字母有%d个
小写字母有 %d个
数字有 %d个
空格有%d个
其他字符有 %d个
",d,x,y,z,q);
}

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

#include<stdio.h>
#include<string.h>
int main()
{
    char a[]="mima",b[100];
    int i;
    printf("输入你的密码");
    gets(b);
    if(strcmp(a,b)==0)
    {
        printf("密码正确,登陆成功!");
    }
    while(strcmp(a,b)!=0)
    {    i=1;
    
        do
        {    
        
            printf("登录失败,请重新登录");
            i++;
            gets(b);
            if(strcmp(a,b)==0)
    {
        printf("密码正确,登陆成功!");
        break;
    }
            
        }        
        
        while(i<3);
        
    }
    return 0;    
}

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

#include<stdio.h>
#include<string.h>
int hui(char a[]);
int main()
{
    char z[100];
    printf("请输入一串字符");
    gets(z);
    if(hui(z))
    {
        printf("是回文数"); 
    }
    else if(hui(z)==0)
    {
        printf("不是回文数"); 
    }
    return 0;
}
int hui(char a[])
{
    int i,j,z;
    z=strlen(a);
    for(i=0,j=z-1;i<=(z-1)/2;i++,j--)
    {
        if(a[i]!=a[j])
        {
            break;
        }
    }
    if(i>j)
    {
        return 1;
    }
    else
    return 0;
    
}

注意事项:

1、字符串一""为结束标志

2、占用一个字节

3、scanf不能输入空格字符串,但是gets可以

4、用strlen函数计算字符串长度时不将算在内

原文地址:https://www.cnblogs.com/weizhenchuan/p/6180440.html