• 北大OJ百练——2721:忽略大小写比较字符串大小


    这题很简单,就是一个大小写转换的算法,可能有一个函数专门做这个事,大家可以查查,我想应该是有的。

    那么我的代码思路就是一个个去比较,不管它是大写字母还是小写字母,都一并把它们都专成小写字母,再去比较。

    这样的好处是不用消费很多资源和代码就可以达到效果。

    #include <stdio.h>
    #include <string.h>
    
    // 忽略大小写比较两个字符
    int cmpChar(char a, char b)
    {
    	if(('A' <= a) && (a <= 'Z')) a = a + 'a' - 'A';
    	if(('A' <= b) && (b <= 'Z')) b = b + 'a' - 'A';
    
    	if(a > b) return 1;
    	else if(a == b) return 0;
    	else return -1;
    }
    
    // 比较两个字符串
    int strcmpString(char s1[], char s2[])
    {
    	int l1 = strlen(s1);
    	int l2 = strlen(s2);
    	int len = (l1 < l2? l1:l2);
    	for(int i = 0; i < len; ++i)
    	{
    		int f = cmpChar(s1[i], s2[i]);
    		if(f == 1) return 1;
    		else if(f == -1) return -1;
    
    	}
    	return 0;
    }
    
    int main()
    {
    	char str1[100], str2[100];
    	gets(str1);
    	gets(str2);
    
    	int flag = strcmpString(str1, str2);
    	if(flag > 0) printf(">
    ");
    	else if(flag < 0) printf("<
    ");
    	else printf("=
    ");
    
    	return 0;
    }

    这题其实还可以先把两个字符串都转成大写或小写的字符串,然后直接一个strcmp()解决。这里就不赘述了。






  • 相关阅读:
    空中楼阁 ( House )最短路
    [hdu4333]Revolving Digits
    vue element-ui el-table 选择框单选修改
    css 中间文字 两边横线
    uni-app计算scroll-view高度
    Swift Playgrounds Mac 编程学习入门
    vuecli vue.config.js 通用配置
    vuecli3 分环境打包的方案
    mysql 插入更新
    关闭进程
  • 原文地址:https://www.cnblogs.com/fengju/p/6336170.html
Copyright © 2020-2023  润新知