strcmp(s1, s2)
时间: 2023-11-15 20:55:46 浏览: 138
这是一个 C 语言中的字符串比较函数,用于比较两个字符串 s1 和 s2 是否相等。如果相等,返回值为 0;如果 s1 大于 s2,返回值为正数;如果 s1 小于 s2,返回值为负数。
函数原型为:
```c
int strcmp(const char *s1, const char *s2);
```
其中,s1 和 s2 分别为要比较的两个字符串。
相关问题
#include <stdio.h> #include <string.h> void print_strings(char* s1, char* s2, char* s3) { if (strcmp(s1, s2) <= 0 && strcmp(s1, s3) <= 0) { printf("%s\n", s1); if (strcmp(s2, s3) <= 0) { printf("%s\n%s\n", s2, s3); } else { printf("%s\n%s\n", s3, s2); } } else if (strcmp(s2, s1) <= 0 && strcmp(s2, s3) <= 0) { printf("%s\n", s2); if (strcmp(s1, s3) <= 0) { printf("%s\n%s\n", s1, s3); } else { printf("%s\n%s\n", s3, s1); } } else { printf("%s\n", s3); if (strcmp(s1, s2) <= 0) { printf("%s\n%s\n", s1, s2); } else { printf("%s\n%s\n", s2, s1); } } } int main() { char s1[200], s2[200], s3[200]; scanf("%s", s1); scanf("%s", s2); scanf("%s", s3); print_strings(s1, s2, s3); return 0; } 优化这段代码,使其代码量最小
以下是代码量最小的优化:
```c
#include <stdio.h>
#include <string.h>
#define swap(a, b) { char tmp[200]; strcpy(tmp, a); strcpy(a, b); strcpy(b, tmp); }
int main() {
char s1[200], s2[200], s3[200];
scanf("%s%s%s", s1, s2, s3);
if (strcmp(s1, s2) > 0) swap(s1, s2);
if (strcmp(s1, s3) > 0) swap(s1, s3);
if (strcmp(s2, s3) > 0) swap(s2, s3);
printf("%s\n%s\n%s\n", s1, s2, s3);
return 0;
}
```
这里我们使用了宏定义来实现字符串交换操作。另外,我们使用了一些技巧,如将 `scanf` 语句简化为一行,将比较和交换合并在一起。虽然代码更加简洁,但是可读性稍微降低了一些。
26.若有定义语句: char *s="OK",*s2="ok";,以下选项中能够输出“ OK”的语句是______。 A.if(strcmp(s1,s2)=0) puts(s1); B.if(strcmp(s1,s2)!=0) puts(s2); C.if(strcmp(s1,s2)=1) puts(s1); D.if(strcmp(s1,s2)!=0) puts(s1);
正确的选项是 A. if(strcmp(s1,s2)==0) puts(s1);
解析:
- 定义了两个字符指针变量 s 和 s2,分别指向字符串 "OK" 和 "ok"。
- strcmp 函数用于比较两个字符串是否相等,返回值为 0 表示相等。
- 选项 A 中的语句使用了 strcmp(s1,s2)==0 的条件判断,表示如果 s 和 s2 字符串相等,则执行下面的代码。
- puts 函数用于输出字符串。
- 所以,选项 A 中的语句如果执行,就会输出字符串 "OK"。
所以,选项 A. if(strcmp(s1,s2)==0) puts(s1); 能够输出 "OK"。
阅读全文
相关推荐















