指针实现strcmp c例子
时间: 2023-02-16 10:50:31 浏览: 94
好的,这是一个用指针实现 `strcmp` 函数的例子:
```
#include <stdio.h>
#include <string.h>
int my_strcmp(const char *s1, const char *s2)
{
while (*s1 && *s2 && *s1 == *s2) {
s1++;
s2++;
}
return *s1 - *s2;
}
int main()
{
char str1[] = "abcdefg";
char str2[] = "abcdefh";
int result = my_strcmp(str1, str2);
if (result > 0) {
printf("str1 > str2\n");
} else if (result == 0) {
printf("str1 = str2\n");
} else {
printf("str1 < str2\n");
}
return 0;
}
```
其中,`my_strcmp` 函数中,每次用指针 `s1` 和 `s2` 分别指向两个字符串的当前字符,如果两个字符相同,就继续比较下一个字符。如果两个字符不同或者其中一个字符串已经到了末尾,就停止比较并返回当前字符的 ASCII 码之差。
相关问题
c语言strcmp函数用法
strcmp函数是C语言中的字符串比较函数,用于比较两个字符串是否相等。其函数原型为:
```
int strcmp(const char *s1, const char *s2);
```
其中,s1和s2分别是指向要比较的两个字符串的指针。
函数返回值为整数类型,具体含义如下:
- 若s1等于s2,返回0;
- 若s1小于s2,返回负数;
- 若s1大于s2,返回正数。
比较规则是按照字典序逐个字符比较,直到出现不同的字符或者某个字符串结束为止。
例如,下面是一个使用strcmp函数的例子:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2);
if (result == 0) {
printf("str1 equals to str2\n");
} else if (result < 0) {
printf("str1 is less than str2\n");
} else {
printf("str1 is greater than str2\n");
}
return 0;
}
```
输出结果为:
```
str1 is less than str2
```
解释c语言strcmp函数
`strcmp()`是C语言标准库中的字符串比较函数,它用于比较两个字符数组是否相等。该函数定义在`string.h`头文件中,原型通常是这样的:
```c
int strcmp(const char *str1, const char *str2);
```
参数说明:
- `str1` 和 `str2`:分别是要比较的两个字符串常量指针。
返回值:
- 如果`str1`和`str2`指向的字符串内容完全相同(逐个字符都匹配),返回0表示它们相等。
- 如果`str1`的内容在字典序上小于`str2`,返回一个小于0的整数。
- 如果`str1`的内容在字典序上大于`str2`,返回一个大于0的整数。
举个例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
if (strcmp("hello", "world")) {
printf("Strings are not equal.\n");
} else {
printf("Strings are equal.\n");
}
return 0;
}
```
在这个例子中,`strcmp("hello", "world")`会返回一个负数,因为"hello"在字典序上位于"world"之前,程序会输出"Strings are not equal."。
阅读全文