加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

比较包含数字的字符串

发布时间:2020-12-16 10:28:01 所属栏目:百科 来源:网络整理
导读:你好我比较两个包含数字的char *变量的问题 char1 =“999999”和char2 =“22222111” 当我使用strcmp函数时,它将返回char1变量大于char2 甚至错了. (我知道我可以比较使用atoi函数直到字符串中的9个字符,但我需要使用10,所以它削减了这种可能性). 解决方法
你好我比较两个包含数字的char *变量的问题
char1 =“999999”和char2 =“22222111”
当我使用strcmp函数时,它将返回char1变量大于char2
甚至错了.
(我知道我可以比较使用atoi函数直到字符串中的9个字符,但我需要使用10,所以它削减了这种可能性).

解决方法

避免atoi和朋友的一种稍微麻烦的方法是用零填充两个字符串中较短的一个.或者,假设没有前缀零,只需首先比较长度(因为较短的字符串必须具有较低的值),然后运行lexiographic比较:

int numerical_strcmp(const char* a,const char* b) {
    return (strlen(a) != strlen(b)) ? ((strlen(a) > strlen(b)) ? 1 : -1) : strcmp(a,b);
}

哦,这需要字符串包含非负数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读