在主函数中输入5个不等长的字符串。用函数实现对它们按升序排序,并在主函数中输出这5个已排序的字符串。 【提示】字符串的比较不能用相等运算符“= =”,只能用字符串比较函数strcmp(); 函数strcmp()的两个参数是两个地址值,因此可以用strcmp(s[i],s[j])进行比较。
时间: 2023-03-12 19:56:58 浏览: 113
答:可以使用冒泡排序算法来实现对字符串按升序排序,具体实现如下: for (int i = 0; i < n-1; i++)
{
for (int j = 0; j < n-i-1; j++)
{
if (strcmp(s[j], s[j+1]) > 0)
{
char temp[100];
strcpy(temp, s[j]);
strcpy(s[j], s[j+1]);
strcpy(s[j+1], temp);
}
}
} 在主函数中输出这5个已排序的字符串: for (int i = 0; i < n; i++)
printf("%s\n", s[i]);
相关问题
C语言在主函数中输入 10 个等长的字符串。自定义一个函数对这 10 个字符串进行升序排序, 在主函数中调用此函数并输出排序好的字符串。 【设计要求】 (1)用二维数组作为自定义函数函数的数据类型; (2)使用冒泡排序对字符进行升序排序; (3)在主函数中输入 10 个等长的字符串,存储在一个二维数组中,以这个二维数组的 数组名作为实参进行地址传递调用自定义函数; (4)在主函数中输出排序后的结果
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
void bubbleSort(char arr[][100], int n) {
int i, j;
char temp[100];
for(i = 0; i < n-1; i++) {
for(j = 0; j < n-i-1; j++) {
if(strcmp(arr[j], arr[j+1]) > 0) {
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j+1]);
strcpy(arr[j+1], temp);
}
}
}
}
int main() {
char str[10][100];
int i, n = 10;
printf("Enter 10 strings of equal length:\n");
for(i = 0; i < n; i++) {
scanf("%s", str[i]);
}
bubbleSort(str, n);
printf("\nSorted strings are:\n");
for(i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
在这个程序中,我们首先定义了一个 `bubbleSort` 函数,该函数采用冒泡排序算法对字符串数组进行升序排序。然后,在 `main` 函数中,我们声明了一个二维字符数组 `str`,并要求用户输入 10 个等长的字符串。接下来,我们将该数组作为地址传递给 `bubbleSort` 函数,并在排序后输出排好序的字符串数组。
用C语言在主函数中输入个等长的字符串,用另一个函数对它们排序,然后在主函数中输出这5个已排序好的字符串
在C语言中,为了实现这个功能,你需要创建两个函数:一个用于接收用户输入并存储字符串,另一个用于对字符串数组进行排序。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h> // 包含字符串处理函数
// 函数声明,用于接收用户输入
void input_strings(char strings[], int n);
// 内部排序函数,这里我们使用冒泡排序作为例子
void sort_strings(char* arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) { // 使用strcmp比较字符串
char temp[100];
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
}
}
}
}
int main() {
char strings[5][100]; // 存储5个字符串的数组
int n = 5; // 输入的字符串个数
// 主函数中输入字符串
printf("请输入5个等长的字符串:\n");
for (int i = 0; i < n; i++) {
fgets(strings[i], sizeof(strings[i]), stdin); // 从标准输入读取字符串
}
// 对字符串进行排序
sort_strings(strings, n);
// 输出排序后的字符串
printf("排序后的字符串:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", strings[i]); // 注意最后有一个空字符'\0'
}
return 0;
}
```
阅读全文