• 给一个固定的字符串,输入另一个字符串和它比较,直到猜对为止


    本以为很简单,其实简单中也能学到很多细节的问题,下面附上自己的程序,自己学到的细节或者觉得要注意的点在注释中有说明

    /* 给一个固定的字符串,输入另一个字符串和它比较(要求只要字母对应上就可以,不用大小写一模一样),直到猜对为止 */
    /* 思路:将字符串全变为大写字母构成的字符串,再循环比较 */
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    #define MAX 40
    
    void ToUpper(char *);
    int cmpstr(char*, char*);
    
    int main (void)
    {
        char ANSWER[] = "Grant";    //这里的ANSWER要用变量字符串数组来储存,不能用define常量形式,因为下面会改变其值为大写的
        char try1[MAX];
        char try2[MAX];             //用try2是为了防止改变读入的try1值
    
        puts ("Who is buried in Grant's tomb?");
        gets (try1);             //gets()函数从键盘读入数据,放入一个指针指向的地址中,以换行符结束读入
        strcpy(try2,try1);        //注意该strcpy()函数的用法
        ToUpper(ANSWER);
        ToUpper(try2);
    
        while (!cmpstr(ANSWER, try2))
        {
            printf("no, please enter another name:
    ");
            gets(try1);
            strcpy(try2,try1);
            ToUpper(try2);
        }
        puts("yes");
        puts(try1);
    
        return 0;
    }
    
    /********************比较两个字符串**********************/
    int cmpstr(char* str1, char* str2)
    {
        int i=0;
    
        if(strlen(str1) != strlen(str2))
            return 0;    //两个字符串长度不同的话,那么这两个字符串自然就不同了
        else
        {    
            while (str1[i]==str2[i] && str1[i]!='')
                i++;
            if(str1[i] == '')
                return 1;
            else 
                return 0;
        }
    }
    
    /********************将一个由字母构成的字符串中的所有字符都变成大写字母**********************/
    void ToUpper(char * str)
    {
        int i=0;
        while(i<strlen(str))
        {
            str[i] = toupper(str[i]);    //单独的使用toupper(str[i])不改变str[i]的值,要使用str[i]=toupper(str[i])赋值才能改变str[i]的值
            i++;
        }
    }
  • 相关阅读:
    进程间通信 —— 命名管道
    判断当前线程是否有管理者权限
    获取操作系统OS等相关信息
    VS2017编译动态链接库报错
    git rebase 和 git merger
    Android开发之深入理解泛型extends和super的区别
    Android开发之深入理解Android Studio构建文件build.gradle配置
    Android开发之深入理解Android 7.0系统权限更改相关文档
    Android 开发之深入理解安卓调试桥各种错误解决办法
    自定义弹窗 VS AlertDialog分享弹窗
  • 原文地址:https://www.cnblogs.com/TomLily/p/5905578.html
Copyright © 2020-2023  润新知