Windows中

本文介绍了一个用于比较两个CString对象的函数。该函数首先检查字符串中是否包含数字,并根据字符串中的数字部分进行比较。若字符串非纯数字,则逐字符比较直至找到不同字符或达到字符串长度最小值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int compare(CString str1,CString str2){int i,j;i=0;j=0;string temp1,temp2;int num1,num2;int length=min(str1.GetLength(),str2.GetLength()); while(i<length&&j'9'||str1.GetAt(i)<'0'||str2.GetAt(j)>'9'||str2.GetAt(j)<'0')//字符串至少有一个不是数字时的处理方法。 { if(str1.GetAt(i)==str2.GetAt(j)){ i++;j++;continue;} else if(str1.GetAt(i)>str2.GetAt(j))return 1; else return -1; } ////////////////分割线//////////////// while(str1.GetAt(i)<='9'&&str1.GetAt(i)>='0')//两个字符串都是数字时的处理方法{temp1+=str1.GetAt(i);i++;} while(str2.GetAt(j)<='9'&&str2.GetAt(j)>='0'){temp2+=str2.GetAt(j);j++;} num1=atoi(temp1.c_str());//字符串转成数字,例如int *i="12"; int n=atoi(i);println("%d",n); 结果是12 num2=atoi(temp2.c_str()); if(num1==num2) //当字符串转成的数字大小相等时,例如123=123或者012=12{ if(temp1.length()temp2.length())return -1; else continue; } else if(num1>num2)//当字符串转成的数字大小不相等时,便可直接得出结果。 return 1; else return -1; } return (str1.GetLength()>str2.GetLength())?1:-1; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值