字符串怎么去掉首位的0比较大小
时间: 2023-02-27 07:42:55 浏览: 50
在判断字符串的大小时,需要先将字符串中的首位的0去掉。可以使用以下代码实现:
```
def compare_string(a, b):
# 去掉首位的0
a = a.lstrip('0')
b = b.lstrip('0')
# 比较大小
if a > b:
return 1
elif a < b:
return -1
else:
return 0
```
上述代码中,使用 `lstrip` 函数去掉了字符串的首位的0,然后使用 `>` 和 `<` 运算符判断字符串的大小。
相关问题
java字符串怎么去掉首位的0比较大小
可以使用 `trim()` 函数去掉字符串首尾的空格以及零,然后将字符串转换成数字,再进行比较。代码如下:
```
String str1 = "0000123";
String str2 = "456";
str1 = str1.trim().replaceFirst("^0+(?!$)", "");
str2 = str2.trim().replaceFirst("^0+(?!$)", "");
int num1 = Integer.parseInt(str1);
int num2 = Integer.parseInt(str2);
if (num1 > num2) {
System.out.println(str1 + " > " + str2);
} else if (num1 < num2) {
System.out.println(str1 + " < " + str2);
} else {
System.out.println(str1 + " = " + str2);
}
```
这样就能比较字符串的数字大小,而不受首位的零影响。
c语言字符串逐位比较大小
C语言中可以使用strcmp函数逐位比较两个字符串的大小。strcmp函数的原型为:
```c
int strcmp(const char *str1, const char *str2);
```
其中,str1和str2是要比较的两个字符串。函数返回值为整型,如果str1小于str2,则返回负数;如果str1大于str2,则返回正数;如果str1等于str2,则返回0。
如果需要忽略字母大小写进行比较,可以使用strcasecmp函数。strcasecmp函数的原型为:
```c
int strcasecmp(const char *str1, const char *str2);
```
与strcmp函数类似,strcasecmp函数也是逐位比较两个字符串的大小,但是在比较时会忽略字母的大小写。
以下是一个使用strcmp函数比较两个字符串大小的例子:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str1[20] = "Hello";
char str2[20] = "hello";
int result = strcmp(str1, str2);
if (result < 0)
{
printf("str1 is less than str2\n");
}
else if (result > 0)
{
printf("str1 is greater than str2\n");
}
else
{
printf("str1 is equal to str2\n");
}
return 0;
}
```