C语言入门:字符串排序
来源:互联网 发布:淘宝网御龙在天激活码 编辑:程序博客网 时间:2024/05/22 06:20
字符串排序:输入5个字符串,安有小到大的顺序输出。试编写相应程序。
#include<stdio.h> //字符串排序实验代码#include<stdlib.h>#include<string.h>int main(){char *a[5],ch,*mid; //中间变量mid存放字符串int count,i,j; //计数器用于动态输入字符串int T,k=0; //冒泡排序的优化变量T,程序退出变量kwhile(1){printf("\n请输入5个字符串:(字符串中不含任何字符则退出)\n");for(i=0;i<5;i++) //输入循环{a[i]=(char *)malloc(sizeof(char)); //使用动态内存分配给字符串指针分配空间count=0;while ((ch=getchar()) != '\n') //动态输入字符串不因数组大小而限制字符个数{a[i][count]=ch;count++;a[i]=(char *)realloc(a[i],(count+1)*sizeof(char)); }a[i][count] = '\0';if(count==0) //count=0说明此字符串未输入字符{k=1;break;}}if(k) //退出程序判断{printf("程序运行结束\n");break;}for(i=4;i>0;i--) //冒泡排序{T=1;for(j=0;j<i;j++)if(strcmp(a[j],a[j+1])>0){mid=a[j];a[j]=a[j+1];a[j+1]=mid;T=0; //执行if语句,则T=0,未执行则T=1} if(T) //T=1说明字符串已排好序,不必执行后面循环break;}printf("已排序的字符串为:\n");for(i=0;i<5;i++) //输出循环printf("%s\n",a[i]);for(i=0;i<5;i++) free (a[i]);}return 0;}
这里用了动态分配内存的方法输入字符串,这样就不会因为数组的限制而限制字符串的输入个数,也不会因为数组定义范围太小而出现字符溢出的情况。
(不过并没有什么用,可以直接设置一个大数组存放字符即可)
运行结果:
阅读全文
0 0
- C语言入门:字符串排序
- c语言 字符串排序
- C语言 字符串排序
- C语言入门----字符串
- c语言字符串大小排序
- c 语言字符串数组排序
- c语言 字符串大小排序
- c语言字符串排序问题
- c语言入门:排序算法
- c语言实现任意个字符串排序
- C语言---数组,字符串数组,冒泡排序
- C语言基础-- 冒泡排序,字符串数组
- YTU 2414: C语言习题 字符串排序
- YTU 2426: C语言习题 字符串排序
- 【C语言】将多个字符串排序输出
- c语言字符串快速排序qsort()
- OJ.2426: C语言习题 字符串排序
- iOS概念入门学习-C语言-字符串
- View事件分发机制
- 爬虫基础知识
- 抽象类和接口联系与区别
- 配置es6编辑环境遇到的问题。
- 多线程经典问题:馒头问题 生产和消费问题(线程的通信问题)
- C语言入门:字符串排序
- java网络编程学习详解和总结!
- 【模板】【图论】最短路
- cmd下用bat文件执行adb 脚本命令
- jbpm通过spring整合到项目里
- JZOJ1262. 为奶牛熄灯
- Oracle基于数据泵导入dmp文件的小记
- 树状数组详解
- 数据结构的简单理解(3)