将若干字符串按字母顺序(由小到大)输出(C语言)

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main(){
	void sort(char *name[],int n);
	void print(char *name[],int n);
	char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
	int n=5;
	sort(name,n);
	print(name,n);
	return 0;
}

void sort(char *name[],int n){
	char *temp;
	for(int i=0;i<n-1;i++){
		for(int j=i+1;j<n;j++){
			if(strcmp(name[i],name[j])>0){
				temp=name[i];
				name[i]=name[j];
				name[j]=temp;
			}
		}
	}
}

void print(char *name[],int n){
	for(int i=0;i<n;i++){
		printf("%s\n",name[i]);
	}
}

在这里插入图片描述
另外print函数还可以这样写:

void print(char *name[],int n){
	int i=0;
	while(i<n)
		printf("%s\n",name[i++]);
	
}
  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 下面是采用指针方式实现的字符串排序C语言代码示例: ``` #include <stdio.h> #include <string.h> #define MAX_NUM 100 #define MAX_LEN 100 int main() { char str[MAX_NUM][MAX_LEN]; char *temp; int i, j, n; // 输入字符串数量 printf("请输入字符串数量:"); scanf("%d", &n); // 输入字符串 for (i = 0; i < n; i++) { printf("请输入第%d个字符串:", i + 1); scanf("%s", str[i]); } // 字符串排序 for (i = 0; i < n - 1; i++) { for (j = i + 1; j < n; j++) { if (strcmp(str[i], str[j]) > 0) { temp = str[i]; str[i] = str[j]; str[j] = temp; } } } // 输出字符串 printf("按字母顺序排列后的字符串:\n"); for (i = 0; i < n; i++) { printf("%s\n", str[i]); } return 0; } ``` 该代码使用了C语言中的`strcmp`函数,该函数用于比较两个字符串的大小。如果第一个字符串比第二个字符串小,则`strcmp`函数返回小于0的数;如果两个字符串相等,则返回0;如果第一个字符串比第二个字符串大,则返回大于0的数。本代码通过比较字符串的大小,实现了字符串排序。 ### 回答2: 要将若干字符串字母顺序从小到大输出,可以使用指针方式来实现。 首先,需要定义一个字符串数组,并将要排序字符串存储在数组中。然后,定义一个指针数组,用于存储指向字符串数组中各个字符串的指针。 接下来,使用冒泡排序的方法对指针数组进行排序。冒泡排序的基本思想是比较相邻两个元素的大小,如果顺序不正确,则交换它们的位置,这样每一轮比较都会把当前最大或最小的元素移动到正确的位置上。 在排序过程中,用指针数组的各个元素指向字符串数组中的对应字符串,通过比较字符串的内容即可实现对字符串数组的排序。 最后,遍历指针数组,并逐个输出指向的字符串即可得到按字母顺序排列的字符串输出。 以下是一个示例代码: ```c #include <stdio.h> #include <string.h> int main() { char strArray[5][20] = {"apple", "banana", "cat", "dog", "elephant"}; char *ptrArray[5]; int i, j; char *temp; for (i=0; i<5; i++) { ptrArray[i] = strArray[i]; } for (i=0; i<4; i++) { for (j=0; j<4-i; j++) { if(strcmp(ptrArray[j], ptrArray[j+1]) > 0) { temp = ptrArray[j]; ptrArray[j] = ptrArray[j+1]; ptrArray[j+1] = temp; } } } for (i=0; i<5; i++) { printf("%s\n", ptrArray[i]); } return 0; } ``` 输出结果为: ``` apple banana cat dog elephant ``` 以上是使用指针方式将若干字符串字母顺序输出的方法,希望对你有帮助! ### 回答3: 要将若干字符串字母顺序由小到大输出,可以采用指针方式进行处理。具体步骤如下: 1. 定义一个指向字符串的指针数组,并初始化该数组为给定的字符串序列。 2. 使用冒泡排序算法对指针数组进行排序。冒泡排序算法的原理是比较相邻的两个字符串,并根据字母顺序大小来交换位置,从而达到排序的目的。 3. 冒泡排序算法的具体实现为:比较相邻的两个字符串,如果前一个字符串大于后一个字符串,则交换它们的位置。依次重复这个步骤,直到所有的字符串按照字母顺序排列。 4. 遍历指针数组,依次输出排序后的字符串序列。 以下是具体代码示例: ```c #include <stdio.h> #include <string.h> void bubbleSort(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) { char *temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } int main() { char *strArr[] = {"abc", "def", "ghi", "jkl", "mno"}; int n = sizeof(strArr) / sizeof(strArr[0]); bubbleSort(strArr, n); printf("按字母顺序输出字符串序列为:\n"); for(int i=0; i<n; i++) { printf("%s\n", strArr[i]); } return 0; } ``` 经过上述步骤处理后,将按照字母顺序由小到大输出若干字符串的结果如下: ``` 按字母顺序输出字符串序列为: abc def ghi jkl mno ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值