比较3个字符串,按从小到大的顺序输出c语言指针
时间: 2024-01-02 08:52:41 浏览: 36
可以使用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语言用指针输入3个字符串,按由小到大的顺序输出
您好,这是一个C语言实现用指针输入3个字符串,按由小到大的顺序输出的示例代码:
```
#include <stdio.h>
#include <string.h>
void swap(char **a, char **b) {
char *tmp = *a;
*a = *b;
*b = tmp;
}
void sort(char **strs, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(strs[i], strs[j]) > 0) {
swap(&strs[i], &strs[j]);
}
}
}
}
int main() {
char *strs[3];
for (int i = 0; i < 3; i++) {
char str[100];
printf("请输入第%d个字符串:", i + 1);
scanf("%s", str);
strs[i] = strdup(str); // strdup() 可以复制字符串
}
sort(strs, 3);
printf("排序后的字符串依次为:\n");
for (int i = 0; i < 3; i++) {
printf("%s\n", strs[i]);
free(strs[i]); // 释放 strdup() 分配的空间
}
return 0;
}
```
您可以将上面的代码保存到一个文件中(例如文件名为 `sort_strings.c`),然后在命令行中使用以下命令编译运行这个程序:
```
$ gcc -o sort_strings sort_strings.c
$ ./sort_strings
```
然后按照程序提示输入三个字符串即可,程序将按照从小到大的顺序输出这三个字符串。