有没有办法在C中使用strcmp比较2个不同长度的字符串

问题描述 投票:0回答:1

假设我想将24和4作为字符串进行比较。因为24基于其ASCII值大于4,所以它不返回正数,而是尝试返回负值,因为它只比较两个字符串的前几位,因为它们的字符串长度不同。有什么办法可以比较两个字符串中的所有字符吗?

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

int main() {
     char st[100] = "24";
     char st1[100]= "4";

     printf("%d", strcmp(st, st1));

}

c
1个回答
0
投票

C标准定义strcmp

strcmp()函数应将s1指向的字符串与s2指向的字符串进行比较。返回值的非零符号应由所比较的字符串中不同的第一对字节(均被解释为无符号字符类型)的值之差来确定。

返回值

完成后,如果s1所指向的字符串分别大于,等于或小于s2所指向的字符串,则strcmp()应返回大于,等于或小于0的整数。] >

该规范仅说明返回值的符号,而不说明返回值本身,因此不可以,使用strcmp不能执行您想要的操作。

© www.soinside.com 2019 - 2024. All rights reserved.