编一个程序,比较两个字符串s1和s2,若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。
时间: 2023-05-31 09:18:44 浏览: 334
对于两个输入的字符串的比较
### 回答1:
可以使用strcmp函数来比较两个字符串s1和s2,该函数返回一个整数值,表示两个字符串的大小关系。
如果s1>s2,返回一个正数;如果s1=s2,返回;如果s1<s2,返回一个负数。
下面是一个示例程序:
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
int result;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
result = strcmp(s1, s2);
if (result > )
{
printf("s1大于s2,返回一个正数:%d\n", result);
}
else if (result == )
{
printf("s1等于s2,返回\n");
}
else
{
printf("s1小于s2,返回一个负数:%d\n", result);
}
return ;
}
### 回答2:
这个问题意在考察编程语言中字符串比较的方式和方法。以下是一些可能的解决方案:
方案一:使用已有的字符串比较函数
每个编程语言都提供了一些用于字符串比较的函数。比如C语言中的strcmp函数,Python中的compare函数等。
假设我们要比较的两个字符串分别为s1和s2,则C语言中代码可以写成:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100];
char s2[100];
int result;
printf("请输入s1: ");
scanf("%s", s1);
printf("请输入s2: ");
scanf("%s", s2);
result = strcmp(s1, s2);
printf("%d", result);
return 0;
}
```
Python中的代码可以写成:
```python
s1 = input("请输入s1:")
s2 = input("请输入s2:")
result = cmp(s1, s2)
print(result)
```
这两份代码都使用了系统提供的字符串比较函数,在比较完成后输出了比较结果。
方案二:将字符串转为数字进行比较
如果要比较的字符串都由数字组成,则可以将它们转为数字,再进行比较。C语言中我们可以使用atoi函数将字符串转为整数,Python中使用int函数也可以实现。
下面是C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s1[100];
char s2[100];
int num1, num2;
printf("请输入s1: ");
scanf("%s", s1);
printf("请输入s2: ");
scanf("%s", s2);
num1 = atoi(s1);
num2 = atoi(s2);
if (num1 > num2) printf("%d", 1);
else if (num1 == num2) printf("%d", 0);
else printf("%d", -1);
return 0;
}
```
Python中的代码也类似:
```python
s1 = input("请输入s1:")
s2 = input("请输入s2:")
num1 = int(s1)
num2 = int(s2)
if num1 > num2:
print(1)
elif num1 == num2:
print(0)
else:
print(-1)
```
不同于方案一,这个方案将字符串转为数字进行比较。但是它无法处理有字符的字符串。如果字符串中存在字母,则无法将其转为数字并进行比较。
### 回答3:
要编写一个程序来比较两个字符串s1和s2的大小,我们可以采用遍历字符串的方式逐一比较字符。具体步骤如下:
1. 首先,定义两个字符串s1和s2,并获取它们的长度len1和len2。
2. 然后,使用循环遍历字符串中的所有字符。
3. 对于每个字符,使用ASCII码值进行比较。如果s1中的某一字符的ASCII码值大于s2中对应字符的值,说明s1>s2,此时输出一个正数。如果相等,则继续比较下一位;如果s1中某一字符的ASCII码值小于s2中对应字符的值,说明s1<s2,此时输出一个负数。
4. 如果循环结束后还没有确定大小关系,则说明两个字符串相等,此时输出0。
下面是用Python语言实现这个程序的代码:
```
def compare_str(s1, s2):
len1 = len(s1)
len2 = len(s2)
if len1 > len2:
return 1
elif len1 < len2:
return -1
else:
for i in range(len1):
if ord(s1[i]) > ord(s2[i]):
return 1
elif ord(s1[i]) < ord(s2[i]):
return -1
return 0
s1 = input("请输入字符串1:")
s2 = input("请输入字符串2:")
result = compare_str(s1, s2)
print("字符串1和字符串2的大小关系是:", result)
```
在这个程序中,我们首先获取了两个字符串的长度len1和len2,并进行比较。如果长度不同,则可直接确定大小关系。如果长度相等,则按照上述步骤进行逐一比较,最后输出结果。
阅读全文