C语言-对输入n个字符串进行排序(无导入string.h)
2015-06-01 10:57
561 查看
#include <stdio.h> #include "stdlib.h" #define N 256 //宏定义 //比较两个字符串的大小 int str_compare(const char* src,const char* dst) { int ret = 0; if (src == dst) { return 0; } if (dst == NULL) { return -1; } while (!(ret = *(unsigned char*)src - *(unsigned char*)dst)&& *dst) { ++src,++dst; } if (ret < 0) { ret = -1; } else if (ret > 0) { ret = 1; } return ret; } //排序函数 void sort_string( char *strs[],int len) { int i=0,j; for(i=0;i<len;i++) { for ( j = 1; j < len - i; j++) { if(str_compare(strs[j-1],strs[j]) >0) { char *tmp = 0; tmp = strs[j-1]; strs[j-1] = strs[j]; strs[j] = tmp; } } } //输出排序后的字符串 for( i=0;i<len;i++) { printf("%s\n",strs[i]); } } int main() { //声明二维数组 char str [256]; //声明指针数组 char *ps ; int i=0,j; for(j=0;j<N;j++) ps[j]=NULL; printf("输入字符串(每个字符串间换行输入,空格结束输入):\n"); for(;i<N;i++) { gets(str[i]); if (str_compare(str[i]," ")==0)//空格串作为字符串输入结束符 break; ps[i]=str[i]; } printf("一共有 %d 个字符串.\n",i); printf("排序后的字符串为:\n"); sort_string(ps,i);//调用排序函数 printf("\n"); system("pause"); return 0; }
相关文章推荐
- C语言-对输入的n个字符串进行排序
- C语言 对输入的一个字符串进行排序
- 电子词典的内存分配方式改进
- C++中各种类型的成员变量的初始化方法
- Effective C++ 条款35
- 使用 C++ 处理 JSON 数据交换格式
- ubuntu上调过C语言画简单的函数曲线
- C++ 9.1 顺序容器-----vector、list、deque
- C++11:使用 auto/decltype/result_of使代码可读易维护
- C++ 重写重载重定义区别
- C++中虚函数工作原理和(虚)继承类的内存占用大小计算
- C语言前五章总结
- C++对话框创建及修改对话框属性
- 关于c++随机数的小问题
- C++ vector
- C++template
- C++对象模型之复制构造函数的构造操作
- C语言程序设计笔记(二)
- cpp algorithm
- C语言程序设计笔记(一)