比较包含数字的字符串
发布时间: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); } 哦,这需要字符串包含非负数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |