用指针写一个函数比较两个字符串大小
时间: 2023-12-14 19:38:24 浏览: 81
可以写一个函数 `compareStrings`,其参数为两个 `char` 类型的指针,分别指向要比较的字符串,函数返回值为整型,表示两个字符串的大小关系。
函数实现如下:
```c
int compareStrings(char *str1, char *str2) {
while (*str1 == *str2) {
if (*str1 == '\0') {
return 0; // 两个字符串相等
}
str1++;
str2++;
}
return (*str1 > *str2) ? 1 : -1; // 如果 str1 比 str2 大返回 1,否则返回 -1
}
```
函数逐个比较两个字符串中的字符,如果相同就继续比较下一个字符,直到出现不同的字符或者字符串结尾。如果两个字符串完全相同,则返回 `0`;否则,返回比较结果。
相关问题
指针写一个函数比较两个字符串
下面是一个比较两个字符串的函数,使用指针实现:
```c
int compare_strings(char *s1, char *s2) {
while (*s1 == *s2) {
if (*s1 == '\0') {
return 0;
}
s1++;
s2++;
}
return (*s1 - *s2);
}
```
这个函数使用了指针,以便在比较字符串时可以遍历它们。比较过程是通过逐个比较两个字符串中的字符来完成的。如果字符相等,则指针向前移动,继续比较下一个字符。如果两个字符串相等,则函数返回0。否则,函数返回它们之间的ASCII码差值。
用指针函数比较两个字符串数组大小
可以使用指针函数来比较两个字符串数组的大小。下面是一个例子:
```c
#include <stdio.h>
int compareStrings(char *str1, char *str2) {
while (*str1 && (*str1 == *str2)) {
str1++;
str2++;
}
return *str1 - *str2;
}
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = compareStrings(str1, str2);
if (result < 0) {
printf("'%s' is less than '%s'\n", str1, str2);
} else if (result > 0) {
printf("'%s' is greater than '%s'\n", str1, str2);
} else {
printf("'%s' is equal to '%s'\n", str1, str2);
}
return 0;
}
```
这个例子中,`compareStrings`函数使用指针来比较两个字符串的大小。它首先检查两个字符串的第一个字符是否相等,如果相等,则继续比较下一个字符,直到找到不相等的字符或者到达字符串的结尾。如果两个字符串的长度不同,则较短的字符串被认为是小于较长的字符串。最后,函数返回一个整数值,表示两个字符串的大小关系。