编写一个程序,比较字符串 s1 和 s2 。若 s1 > s2 ,输出一个正数,若 s1 = s2 ,输出0,若 s1 < s2 ,则输出一个负数。
时间: 2023-05-31 07:18:05 浏览: 155
### 回答1:
可以使用strcmp函数来比较两个字符串s1和s2的大小关系,该函数返回值为整型,如果s1>s2,则返回正数;如果s1=s2,则返回;如果s1<s2,则返回负数。具体实现代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
int result = strcmp(s1, s2);
if (result > )
{
printf("s1大于s2\n");
}
else if (result == )
{
printf("s1等于s2\n");
}
else
{
printf("s1小于s2\n");
}
return ;
}
```
运行程序,输入两个字符串,即可得到它们的大小关系。
### 回答2:
可以使用strcmp函数进行字符串比较。该函数的原型为:
```c
int strcmp(const char *s1, const char *s2);
```
该函数用于比较两个字符串s1和s2的大小关系。如果s1>s2,则返回一个正数;如果s1==s2,则返回0;如果s1<s2,则返回一个负数。
具体实现代码如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
int result;
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
result = strcmp(s1, s2);
if (result > 0)
{
printf("s1>s2,返回值为%d\n", result);
}
else if (result == 0)
{
printf("s1=s2,返回值为%d\n", result);
}
else
{
printf("s1<s2,返回值为%d\n", result);
}
return 0;
}
```
这个程序中,主要使用了gets函数获取输入的两个字符串,然后使用strcmp函数进行比较,最后根据比较结果输出相应的语句。
需要注意的是,在使用gets函数时,应特别注意输入的字符串长度不要超过数组的长度,否则可能会导致数组越界和内存破坏的问题。同时,在实际使用中,可以加入错误处理的机制,以便在输入出现错误时及时提示用户并退出程序。
### 回答3:
要编写一个比较两个字符串大小的程序,我们需要先了解字符串的比较规则。在按照字典序比较两个字符串的大小时,我们需要遵循以下规则:
1. 从字符串的第一个字符开始比较,如果两个字符不相同,则比较它们的ASCII码值。ASCII码值较大的字符大于ASCII码值较小的字符。
2. 如果两个字符串的前面若干个字符均相同,则比较它们的长度。长度较短的字符串小于长度较长的字符串。
根据上述规则,我们可以编写以下程序:
```
#include <stdio.h>
#include <string.h>
int compare(char *s1, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int i, j;
for (i = 0, j = 0; i < len1 && j < len2; i++, j++) {
if (s1[i] > s2[j]) {
return 1;
} else if (s1[i] < s2[j]) {
return -1;
}
}
if (len1 > len2) {
return 1;
} else if (len1 < len2) {
return -1;
} else {
return 0;
}
}
int main() {
char s1[100], s2[100];
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
int result = compare(s1, s2);
printf("%d\n", result);
return 0;
}
```
此程序首先输入两个字符串s1和s2,然后调用compare函数比较它们的大小,并将结果输出。compare函数的实现如下:
1. 首先获取两个字符串的长度。
2. 利用for循环依次比较两个字符串的每个字符。如果两个字符不相等,则根据ASCII码值关系返回1或-1。
3. 如果两个字符串前缀的所有字符都相等,则根据长度关系返回1或-1。
4. 如果两个字符串完全相等,则返回0。
在程序运行时,我们可以输入任意两个字符串进行比较,输出的结果为正数、零或负数,分别代表第一个字符串大于、等于或小于第二个字符串。