比较3个字符串,按从小到大的顺序输出c语言指针
时间: 2024-01-02 12:52:41 浏览: 103
可以使用strcmp函数来比较字符串,然后使用指针数组来存储这些字符串,并通过比较大小来进行排序。
下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char *str[3] = {"hello", "world", "apple"};
char *tmp;
for (int i=0; i<2; i++) {
for (int j=i+1; j<3; j++) {
if (strcmp(str[i], str[j]) > 0) {
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
}
}
for (int i=0; i<3; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
输出结果为:
```
apple
hello
world
```
相关问题
输入三个字符串按从小到大输出用c语言来写 带有指针同时带有一定解释
可以使用C语言的字符串库函数`strcmp()`来比较字符串的大小,然后使用指针数组来存储这三个字符串,并使用循环和条件语句来进行排序。以下是一个示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char* str[3] = {"hello", "world", "apple"}; // 定义一个指针数组,存储三个字符串
char* temp; // 定义一个临时指针变量,用于交换字符串指针
// 冒泡排序,按照字符串大小从小到大排序
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2 - i; j++) {
if (strcmp(str[j], str[j + 1]) > 0) {
temp = str[j];
str[j] = str[j + 1];
str[j + 1] = temp;
}
}
}
// 输出排序后的字符串
for (int i = 0; i < 3; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
在这个代码中,我们定义了一个指针数组`str`,并初始化了三个字符串。然后使用冒泡排序的方法,从小到大排序这三个字符串。最后,使用循环输出排序后的字符串。
C语言运用指针,输入三个字符串,按从小到大的顺序输出
在C语言中,你可以使用指针来操作字符串,并利用字符数组和qsort函数来实现字符串的排序。以下是一个简单的示例,展示如何输入三个字符串并按照字典序(即字母顺序)从小到大输出:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义比较两个字符串的辅助函数
int compareStrings(const void* a, const void* b) {
const char** pa = (const char**)a;
const char** pb = (const char**)b;
return strcmp(*pa, *pb);
}
int main() {
char* str1[3];
printf("请输入第一个字符串: ");
fgets(str1[0], sizeof(str1[0]), stdin); // 考虑fgets处理换行符
str1[0][strcspn(str1[0], "\n")] = '\0'; // 去除fgets留下的换行符
printf("请输入第二个字符串: ");
fgets(str1[1], sizeof(str1[1]), stdin);
str1[1][strcspn(str1[1], "\n")] = '\0';
printf("请输入第三个字符串: ");
fgets(str1[2], sizeof(str1[2]), stdin);
str1[2][strcspn(str1[2], "\n")] = '\0';
// 使用qsort对字符串数组进行排序
qsort(str1, 3, sizeof(char*), compareStrings);
// 输出排序后的字符串
for(int i = 0; i < 3; i++) {
printf("%s ", str1[i]);
}
printf("\n");
return 0;
}
阅读全文