首页 > 代码库 > 第十一次作业

第十一次作业

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

#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
    int a=0,b=0,c=0,d=0,e=0,i;
    char str[N]={0};
    printf("请输入字符串");
    gets(str);
       for(i=0;i<strlen(str);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()
{
    int i;
    char password[]="fffwan",a[8];
    for(i=0;i<3;i++)
    {
        printf("请输入密码\n");
        scanf("%7s",a);
        if(strcmp(password,a)==0)
        {
            printf("登陆成功\n");
            break; 
        }
        else
        {
            printf("登录失败\n");
        } 
    } 
    if(i==3)
    {
        printf("您的密码已输入错误三次,电脑即将爆炸!");
    }
    return 0; 
}

技术分享

技术分享

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

#include<stdio.h>
#include<string.h>
#define N 100
int Fun(char str[]);
int main()
{
    int a;
    char str[N];
    printf("请输入字符串\n");
    scanf("%s",str);
    a=Fun(str);
    if(a==0)
    {
        printf("非回文数\n"); 
    }
    else if(a==1)
    {
        printf("回文数\n"); 
    }
    return 0;
}
int Fun(char str[])
{
    int i,j,n;
    n=strlen(str);
    for(i=0,j=n-1;i<=j;i++,j--)
    {
        if(str[i]!=str[j])
            {
                return 0;
            }
    }
    if(str[i]==str[j])
    {
        return 1;
    }
}

技术分享

技术分享

实验总结:

1 scanf中不需要取地址符!

2 strlen(str)是求数组长度的正确表达形式!

3 字符数组最后一位为\0!

4 必要时应用清除缓存函数!

5 字符数组定义用char!

(三)

1 大概有三四千行左右的代码吧,开学初的时候觉得c语言十分难理解,离我们非常遥远,现在感觉c离我们挺近的,

第十一次作业