用指针,输入两个字符串,比较字符串大小,并输出较大字符串。用strcmp函数。
时间: 2024-09-30 07:09:53 浏览: 37
当你想要使用指针来比较两个字符串并找出较大的那个时,可以利用C语言标准库中的`strcmp`函数。这个函数接受两个指向字符数组的指针作为参数,如果第一个字符串大于第二个,则返回一个正数;如果相等则返回0;如果第一个小于第二个,则返回负数。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h> // 包含strcmp函数
int main() {
char* str1 = "Hello";
char* str2 = "World";
if(strcmp(str1, str2) > 0) {
printf("'%s' is larger than '%s'\n", str1, str2);
} else if(strcmp(str1, str2) == 0) {
printf("Both strings are equal.\n");
} else {
printf("'%s' is larger than '%s'\n", str2, str1);
}
return 0;
}
```
在这个例子中,我们首先声明了两个指向字符数组的指针str1和str2,然后使用`strcmp`函数比较它们。根据返回值的大小关系,我们可以判断哪个字符串较长。
相关问题
不使用strcmp函数,怎样用指针比较两个字符串的大小
可以使用指针逐个比较两个字符串的字符,直到出现不相等的字符或者其中一个字符串结束。如果出现不相等的字符,则比较它们的ASCII码大小,谁大谁就排在后面,如果其中一个字符串先结束,则长度较短的字符串排在前面。
示例代码如下:
```c
#include <stdio.h>
int str_compare(char *s1, char *s2) {
while (*s1 && *s2) {
if (*s1 != *s2) {
return (*s1 > *s2) ? 1 : -1;
}
s1++;
s2++;
}
if (*s1) {
return 1;
} else if (*s2) {
return -1;
} else {
return 0;
}
}
int main() {
char s1[] = "hello";
char s2[] = "world";
int result = str_compare(s1, s2);
if (result > 0) {
printf("%s is greater than %s\n", s1, s2);
} else if (result < 0) {
printf("%s is less than %s\n", s1, s2);
} else {
printf("%s is equal to %s\n", s1, s2);
}
return 0;
}
```
输出结果为:
```
hello is less than world
```
不使用strcmp函数,怎样用指针比较两个字符串的大小,用for循环
可以通过比较两个字符串的ASCII码值来判断大小关系,可以按照以下步骤进行比较:
1. 定义两个指针指向要比较的两个字符串的首字母。
2. 使用for循环遍历两个字符串,每次比较指针所指向的字符的ASCII码值。
3. 如果两个字符的ASCII码值相等,则比较下一个字符;如果不相等,则返回它们的ASCII码值之差大小关系。
4. 如果遍历完其中一个字符串后,另一个字符串还有剩余字符,则返回它们长度之差大小关系。
下面是一个示例代码:
```c
int string_compare(const char* str1, const char* str2) {
const char* p1 = str1;
const char* p2 = str2;
for (; *p1 && *p2; ++p1, ++p2) {
if (*p1 != *p2) {
return (*p1 > *p2) ? 1 : -1;
}
}
return (*p1) ? 1 : ((*p2) ? -1 : 0);
}
```
在这个示例中,我们使用指针p1和p2来指向两个要比较的字符串的首字母,并在for循环中遍历两个字符串。如果两个字符不相等,则返回它们的ASCII码值之差大小关系。如果遍历完其中一个字符串后,另一个字符串还有剩余字符,则返回它们长度之差大小关系。
阅读全文