黑马程序员技术交流社区
标题:
对字符串从小到大排列并输出结果
[打印本页]
作者:
4B青年
时间:
2015-7-1 20:21
标题:
对字符串从小到大排列并输出结果
自我感觉这题算是对指针和字符串灵活的应用,发出来给大家看看,顺便看看能不能优化。
#include <stdio.h>
#include <string.h>
#define N 6
#define L 100
int main(int argc, const char * argv[]) {
//定义一个字符串数组
char *array[N];
char arr[N][L];
//通过for循环将数组arr各元素的行地址赋值给指针数组array
for (int i=0; i<N; i++) array[i]=arr[i];
//通过for循环接收用户输入的字符串并存在数组arr中
for ( int i=0; i<N; i++) {
//提示用户输入字符串
printf("请输入第%d个字符串:\n",i+1);
//接收用户输入的字符串
scanf("%s",array[i]);
}
//对字符串排序
//定义指针变量用来存放地址
char *temp;
//冒泡排序法
for(int i=0;i<N-1;i++){
for(int j=0;j<N-i-1;j++){
//比较字符串的大小并将大数后移
if(strcmp(*(array+j),*(array+j+1))>0){
temp=*(array+j);
*(array+j)=*(array+j+1);
*(array+j+1)=temp;
}
}
}
printf("\n");
//打印字符串
for(int i=0;i<N;i++){
printf("%s\n",array[i]);
}
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2