用strcmp 函数排列5个字符串blue","yellow","red","black","green"
时间: 2024-06-05 19:05:03 浏览: 54
strcmp 函数的使用
`strcmp` 是 C 语言中的一个标准库函数,用于比较两个字符串是否相等。在排序字符串列表时,我们可以使用这个函数配合循环结构(如 `qsort` 或手动遍历)来实现。这里以冒泡排序为例,演示如何使用 `strcmp` 对 "blue", "yellow", "red", "black", "green" 这五个字符串进行字母顺序排列。
1. 首先,我们需要一个比较函数,该函数接受两个字符串作为输入,并返回一个整数,表示它们的相对顺序。如果第一个字符串应该排在第二个之前,返回一个负数;如果相等,返回0;如果第一个在后,返回正数。这正是 `strcmp` 的作用:
```c
int compare_strings(const char *str1, const char *str2) {
return strcmp(str1, str2);
}
```
2. 接下来,我们定义一个数组存储字符串,并调用 `qsort` 函数对其进行排序,传入我们的比较函数和数组元素的大小:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* strings[] = {"blue", "yellow", "red", "black", "green"};
const int num_strings = sizeof(strings) / sizeof(strings[0]);
void sort_strings(char** array, int count, int(*compare)(const void*, const void*)) {
qsort(array, count, sizeof(char*), compare);
}
int main() {
sort_strings(strings, num_strings, compare_strings);
// 打印排序后的字符串
for (int i = 0; i < num_strings; ++i) {
printf("%s ", strings[i]);
}
printf("\n");
return 0;
}
```
3. 当你运行这段代码后,输出将是按字母顺序排列的字符串:"blue green red yellow black"。
阅读全文