C语言判断两个字符串s1和s2是否相等用if
时间: 2023-12-17 19:04:19 浏览: 286
可以使用strcmp函数结合if语句来判断两个字符串s1和s2是否相等,示例如下:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s1[100], s2[100];
printf("请输入字符串s1:");
gets(s1);
printf("请输入字符串s2:");
gets(s2);
if (strcmp(s1, s2) == 0)
printf("s1等于s2\n");
else
printf("s1不等于s2\n");
return 0;
}
```
在上述示例中,如果strcmp函数返回值为0,则表示s1和s2相等,if语句的判断条件为真,执行printf语句输出s1等于s2;否则,if语句的判断条件为假,执行else语句输出s1不等于s2。
相关问题
如何用C语言设计一个算法来判断两个链式字符串S1和S2是否相等?如果相等,返回1;否则,返回0。
在C语言中,我们可以使用递归的方式来设计一个算法来判断两个链式字符串S1和S2是否相等。这里的关键在于比较当前节点的字符是否相同,并检查它们是否有剩余的节点需要继续比较。
下面是一个简单的递归函数`isEqual`的实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
char data;
struct Node* next;
} Node;
int isEqual(Node* s1, Node* s2) {
// 如果都为空,说明字符串结束,相等
if (s1 == NULL && s2 == NULL)
return 1;
// 如果其中一个为空,另一个非空,则不相等
if (s1 == NULL || s2 == NULL)
return 0;
// 如果当前字符不相等,直接返回0
if (s1->data != s2->data)
return 0;
// 递归地比较下一个节点
return isEqual(s1->next, s2->next);
}
int main() {
// 创建链表示例
Node *s1 = malloc(sizeof(Node));
Node *s2 = malloc(sizeof(Node));
// ... (填充链表元素)
int result = isEqual(s1, s2);
printf("%d\n", result); // 输出0或1
free(s1);
free(s2);
return 0;
}
```
这个函数首先检查两个链表头指针是否同时为NULL,如果是则表示两串都已遍历完,相等。然后逐个比较每个节点的字符,直到找到不匹配或者任一链表结束。
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。
阅读全文