在c语言中,有一个strcmp函数,其功能是比较两个字符串s1和s2。请编写一个你自己的字符串比较函数my_strcmp,来实现strcmp函数的类似功能。如果s1=s2,则返回0;否则返回s1 与s
时间: 2023-06-05 09:47:20 浏览: 212
2的第一个不同字符的ASCII码差值。
以下是一个可能的实现:
```c
int my_strcmp(const char* s1, const char* s2) {
while (*s1 && *s2 && *s1 == *s2) {
s1++;
s2++;
}
return *s1 - *s2;
}
```
这个函数使用了指针的方式来遍历两个字符串,如果两个字符串当前字符相同,则继续比较下一个字符,直到遇到不同的字符或者其中一个字符串结束。如果两个字符串完全相同,则返回;否则返回第一个不同字符的ASCII码差值。注意,这个函数没有考虑字符串中可能存在空字符('\')的情况,因为在C语言中,字符串以空字符结尾,所以只要两个字符串中有一个以空字符结尾,就不会出现遍历到字符串末尾的问题。
相关问题
C语言判断两个字符串s1和s2是否相等
可以使用C语言中的strcmp函数来判断两个字符串是否相等。strcmp函数的用法如下:
```c
#include <string.h>
int strcmp(const char *s1, const char *s2);
```
其中,s1和s2分别表示要比较的两个字符串,函数返回值为0表示两个字符串相等,返回值大于0表示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\n");
else
printf("s1不等于s2\n");
return 0;
}
```
在上述示例中,gets函数用于从标准输入流中读取字符串,可以根据实际需要替换为其他读取字符串的函数。
c语言编写函数比较字符串大小,若有两个字符串s1和s2,s1与s2相等返回0,s1>s2返回1,s1<s2返回-1。
可以使用strcmp函数来比较两个字符串的大小,该函数在string.h头文件中定义。strcmp函数返回值为整型,如果s1>s2,返回正数;如果s1=s2,返回0;如果s1<s2,返回负数。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int compare_strings(char s1[], char s2[]) {
int result = strcmp(s1, s2);
if(result > 0) {
return 1;
} else if(result == 0) {
return 0;
} else {
return -1;
}
}
int main() {
char s1[] = "hello";
char s2[] = "world";
int result = compare_strings(s1, s2);
printf("%d", result);
return 0;
}
```
输出结果为-1,表示s1<s2。