我们知道C语言中可以用strcmp来比较两个字符,但是那是区别大小写的,C++中有没有不分大小写的strcmp?

HashCodeWithJava 2001-06-01 07:45:00
...全文
3881 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xin_cygnet 2001-06-01
  • 打赏
  • 举报
回复
至于C++的 Comp 可用下边的函数实现,其中当 diff==TRUE 时区分大小写,否则不区分大小写。

int StrComp(CString s1,CString s2,BOOL diff)
{
LPCTSTR sz1,sz2;
sz1=s1;
sz2=s2;
if(diff)//区分大小写
{
return strcmp(sz1,sz2);
}
else
{
return _stricmp(sz1,sz2);
}
}
xin_cygnet 2001-06-01
  • 打赏
  • 举报
回复
Sodar 说得言简意赅,可谓Sodar的贴子一出就应立即得分。请看下边使用 _stricmp 的例子,一看便知!

/* STRCMP.C */

#include <string.h>
#include <stdio.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

void main( void )
{
char tmp[20];
int result;
/* Case sensitive */
printf( "Compare strings:\n\t%s\n\t%s\n\n", string1, string2 );
result = strcmp( string1, string2 );
if( result > 0 )
strcpy( tmp, "greater than" );
else if( result < 0 )
strcpy( tmp, "less than" );
else
strcpy( tmp, "equal to" );
printf( "\tstrcmp: String 1 is %s string 2\n", tmp );
/* Case insensitive (could use equivalent _stricmp) */
result = _stricmp( string1, string2 );
if( result > 0 )
strcpy( tmp, "greater than" );
else if( result < 0 )
strcpy( tmp, "less than" );
else
strcpy( tmp, "equal to" );
printf( "\t_stricmp: String 1 is %s string 2\n", tmp );
}


Output

Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown dog jumps over the lazy fox

strcmp: String 1 is greater than string 2
_stricmp: String 1 is equal to string 2

HashCodeWithJava 2001-06-01
  • 打赏
  • 举报
回复
不是用CString
到lstrcmpi
和_stricmp行不行喔?
gameboy999 2001-06-01
  • 打赏
  • 举报
回复
strcmp(UpperCase(str1),UpperCase(str2));

ok!
joke100 2001-06-01
  • 打赏
  • 举报
回复


int lstrcmpi(
LPCTSTR lpString1, // first string
LPCTSTR lpString2 // second string
);

The comparison is not case sensitive.

int n = lstrcmpi("abcd", "ABcd"); // 结果n == 0,忽略大小写
ydogg 2001-06-01
  • 打赏
  • 举报
回复
strcmp()是区分大小写的。。。

你可以用CString类的MakeUpper()或者MakeLower()函数,
全部转换为大写或小写,在作比较。
这样,就可以不考虑大小写的问题了。
Sodar 2001-06-01
  • 打赏
  • 举报
回复
_stricmp
内容概要:本文研究了一种基于遗传算法的新型异构分布式系统任务调度算法,旨在解决异构计算环境任务分配与调度的复杂优化问题。通过Matlab代码实现该算法,充分利用遗传算法强大的全局搜索能力和鲁棒性,对任务执行时间、资源利用率、系统负载均衡等关键性能指标进行综合优化,有效提升分布式系统的整体运行效率与稳定性。研究详细阐述了算法的整体架构设计、染色体编码策略、适应度函数构造、选择机制以及交叉与变异等遗传操作的实现细节,并通过大量仿真实验验证了所提出算法相较于传统调度方法在收敛速度、解的质量和调度性能方面的显著优越性。; 适合人群:具备一定编程基础和优化算法理论知识,从事分布式计算、高性能计算、云计算资源调度或智能优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于高性能计算、云计算、边缘计算等异构计算平台的任务调度优化,提升资源利用效率;②为研究人员提供遗传算法在复杂组合优化问题应用的完整实现案例,深化对智能优化算法设计原理与仿真实践的理解; 阅读建议:建议读者结合提供的Matlab代码深入研读,重点理解适应度函数的设计逻辑与遗传算子的参数调优策略,并可通过更换不同的任务集和系统模型来测试算法的泛化能力与鲁棒性。
参考李林凤等(2025)一文关于农村劳动力人均受教育年限指标的构建与计算方法,整理了国31个省份总体、分性别的农村人均受教育年限数据,具体计算方法如下: 农村劳动力人均受教育年限 = (农村未上过学人数 × 1+小学学历人数 × 6+初学历人数 × 9+高专学历人数 ×12+大专及以上学历人数 × 16)/农村6岁及以上总人口 相关数据:各地区、分性别人均受教育年限数据 一、数据介绍 数据名称:国各省农村人均受教育年限 数据范围:全国31个省份 时间范围:2006-2024年 样本数量:590条 数据来源:《国人口和就业统计年鉴》、《国劳动统计年鉴》 二、数据指标 年份 省份 省份代码 农村人均受教育年限 男性-农村人均受教育年限 女性-农村人均受教育年限 6岁及以上人口 6岁及以上人口_男 6岁及以上人口_女 未上过学人口 未上过学人口_男 未上过学人口_女 小学人口 小学人口_男 小学人口_女 初人口 初人口_男 初人口_女 高人口 高人口_男 高人口_女 大专及以上人口 大专及以上人口_男 大专及以上人口_女 三、参考文献 [1]李林凤,刘杨,杨亦民.种业创新驱动农村产业融合的作用机制与空间分异效应[J].广东财经大学学报,2025,40(6):97-109. [2]徐小阳,李洁,金丽馥.普惠金融对农村教育贫困的纾解效应[J].国农村经济,2020,(9):41-64.

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧