社区
C语言
帖子详情
如何写个函数比较两个用字符串表示的整数的大小
icq9988
2004-12-03 07:38:07
如何写个函数比较两个用字符串表示的整数的大小,要优化过的,不用LENGTH等的判断,最快的写法,先谢谢了
...全文
294
13
打赏
收藏
如何写个函数比较两个用字符串表示的整数的大小
如何写个函数比较两个用字符串表示的整数的大小,要优化过的,不用LENGTH等的判断,最快的写法,先谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
alanzhu
2004-12-03
打赏
举报
回复
本人觉得对是否是数字字符的检查可以不在此函数的范围内,呵呵,愚见
alanzhu
2004-12-03
打赏
举报
回复
不好意思,刚才没看见260005065(懒在床上不起) 的,我的成了他的冗余版了
alanzhu
2004-12-03
打赏
举报
回复
int StrCmp(const char *pLhs, const char *pRhs)
{
int t[100];
int i=0;
int j = 0;
while(pLhs[i]!='\0'&&pRhs[i]!='\0')
{
t[i]=pLhs[i]-pRhs[i];
if(t[i]!=0&&j==0)
j=t[i];
if(++i>=100)
return 100;
}
if(pLhs[i]=='\0'&&pRhs[i]=='\0')
return j;
else if(pLhs[i]=='\0')
return -1;
else
return 1;
}
xdspower
2004-12-03
打赏
举报
回复
最好是用liujingfu123(Oh_My_GoD)的方法,毕竟字符串不一定都是表示整数的。
BlackEagle_
2004-12-03
打赏
举报
回复
chenqing1128(逃兵)的代码会使得 0002>23
//把字符串转换成整数
int string2int(char *s) {
int a = 0;
while(*s) {
a = a * 10 + *s - '0';
++s;
}
return a;
}
//比较,返回正数表示大于,负数表示小于,0表示等于
int cmp(char *s1, char *s2) {
return string2int(s1) - string2int(s2);
}
liujingfu123
2004-12-03
打赏
举报
回复
能不能用 atol() 或 atoi() 这样函数试试呢? 先把字符串转化成整数再比较………………
260005065
2004-12-03
打赏
举报
回复
int StrCmp(char *str1,char *str2)
{
int flag=0;
while(*str1&&*str2)
{
if(!flag && *str1!=*str2)
flag=*str1-*str2;
++str1;++str2;
}
if(*str1==*str2)
return flag;
return *str1-*str2;
}
chenqing1128
2004-12-03
打赏
举报
回复
int StrCmp(const char *a, const char *b)
{
if(strlen(a)>strlen(b)) return 1;
else if(strlen(a)<strlen(b))return -1;
else
{
while(a[i]!='\0'&&(a[i]==b[i]))
i++;
if(a[i]=='\0')return 0;
else if(a[i]>b[i]) return 1;
else return -1;
}
}
tsingien
2004-12-03
打赏
举报
回复
根据carylin(别信我,我在说谎) 的写法,似乎“3”会大于"100",根据shenailin(sal)的写法,似乎“002”会大于“30”,我觉得首先应该去掉前导空格和0,在shenailin(sal)程序的基础上改动一下就ok了
shenailin
2004-12-03
打赏
举报
回复
小弟不才,也来一段 !
int StrCmp(const char *pLhs, const char *pRhs)
{
int nLenL, nLenR, i;
i=0;
nLenL =0;
nLenR =0;
while(pLhs[nLenL])
nLenL ++;
while(pRhs[nLenR])
nLenR++;
if(nLenL > nLenR)
return 1;
else if(nLenL < nLenR)
return -1;
else
{
for(i=nLenR-1; i>=0; i++)
{
if(pLhs[i] > pRhs[i])
return 1;
else if(pLhs[i] < pRhs[i])
return -1;
else
continue;
}
}
return 0;
}
friedchicken2002
2004-12-03
打赏
举报
回复
引:carylin(别信我,我在说谎)
写的挺简洁的。
carylin
2004-12-03
打赏
举报
回复
int StrCmp(const string &lhs, const string &rhs)
{
if (lhs < rhs) {return -1;}
if (lhs > rhs) {return 1;}
return 0;
}
lfxzm
2004-12-03
打赏
举报
回复
比比看谁长,要去掉前面的零。如0004要去掉0,剩下4。
如何自定义
比较
两个
字符串
的
大小
题目描述 输入一个非负
整数
数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 输入: [3,30,34,5,9] 输出: "3033459" 一般思路 当看到这个题的时候我们的思路是先将
整数
数组转换成
字符串
数组,然后进行排序,再将排序后的
字符串
拼接返回即可。但是如何
比较
两个
字符串
的
大小
呢?有人会用String类自带的compareTo()
函数
进行
比较
,但是这个
函数
只有当
两个
字符串
的长度一样长的时候才能准确比出
大小
,如果
两个
字符串
的长度不一样的时候比出来的
大小
顺序有肯能并不是我们
[C语言]指针之
字符串
部分复制
函数
:写一个mcopy
函数
,将一个
字符串
中从第m个字符开始的全部字符复制到另一个
字符串
中。在main
函数
中定义
两个
字符数组str1和str2,输入
字符串
str1和
整数
m
写一个mcopy
函数
,将一个
字符串
中从第m个字符开始的全部字符复制到另一个
字符串
中。 在main
函数
中定义
两个
字符数组str1和str2,输入
字符串
str1和
整数
m,然后调用上述
函数
,最后再输出str2
字符串
的内容。要求使用指针的方法遍历该
字符串
。 不允许使用strcpy等系统提供的
函数
。 注意:不要改变
函数
名称,注意
大小
写敏感。 输入 输入包含两行: 第一行是
字符串
str1,不多于999个字符,以回车结束。 第二行是一个正
整数
m。而且m的值是有效的。 输出 输出
字符串
str2。 输入示例 a
C语言中的
字符串
比较
函数
strcmp()
该
函数
的
比较
规则是按照字典序进行
比较
,即从左到右逐个
比较
字符串
中的字符,直到出现不同的字符或者其中一个
字符串
结束为止。如果
两个
字符串
的前缀部分相同,但其中一个
字符串
已经结束,则长度较短的
字符串
被认为是小于长度较长的
字符串
。其中,`string1`和`string2`分别是要
比较
的
两个
字符串
,
函数
返回值为整型,
表示
两个
字符串
的
大小
关系。如果`string1`小于`string2`,则返回一个负
整数
;如果`string1`大于`string2`,则返回一个正
整数
。
c语言
字符串
比较
大小
在 C 语言中,可以使用内置的
函数
strcmp 来
比较
两个
字符串
的
大小
。这个
函数
接受
两个
参数,分别是要
比较
的
两个
字符串
,并返回一个
整数
。如果第一个
字符串
小于第二个
字符串
,那么 strcmp 会返回一个负数;如果
两个
字符串
相等,那么 strcmp 会返回 0;如果第一个
字符串
大于第二个
字符串
,那么 strcmp 会返回一个正数。 例如: #include <stdio.h> #incl...
自己实现
整数
换
字符串
函数
和
字符串
转
整数
函数
对于
整数
转换为
字符串
,或者
字符串
转换为
整数
,可以直接使用库
函数
中提供的方法。如常用的
字符串
转换相关
函数
如下: atof():将
字符串
转换为双精度浮点型值。 atoi():将
字符串
转换为整型值。 atol():将
字符串
转换为长整型值。 strtod():将
字符串
转换为双精度浮点型值,并报告不能被转换的所有剩余数字。 strtol():将
字符串
转换为长整值,并报告不能被转换的所有剩余数字。 strtoul():将
字符串
转换为无符号长整型值,并报告不能被转换的所有剩余数字。 对于单片机来说,库
函数
比较
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章