C语言-动态分配内存对任意个字符串进行排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言-动态分配内存对任意个字符串进行排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1639字,纯文字阅读大概需要3分钟。
内容图文
//动态分配内存对输入的任意字符串排序 #include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<string.h> //比较大小 //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(strcmp(strs[j-1],strs[j]) >0) { char *tmp = 0; tmp = strs[j-1]; strs[j-1] = strs[j]; strs[j] = tmp; } } } printf("\n 输出排序后的字符串:\n"); //输出排序后的字符串 for( i=0;i<len;i++) { printf("%s\n",strs[i]); } } int main() { char *str=NULL,**strs=NULL,*p; unsigned int str_size=0,strs_size=0,i; printf("请输入字符串:(字符串间用空格隔开,回车结束输入)\n"); do { //动态分配内存 char *tmp=(char*)realloc(str,++str_size*sizeof(char)); if(!tmp) { free(str); fputs("out of memory",stderr); return 1; } str=tmp; str[str_size-1]=getchar(); }while(str[str_size-1]!='\n'); str[str_size-1]=0; for(p=strtok(str," \t");p;p=strtok(NULL," \t")) { char **tmp=(char**)realloc(strs,++strs_size*sizeof(char*)); if(!tmp) { free(str); free(strs); fputs("out of memory",stderr); return 1; } strs=tmp; strs[strs_size-1]=p; } printf("\n你输入的字符串是:\n"); for(i=0;i<strs_size;++i) printf("%u:%s\n",i+1,strs[i]); //排序 sort_string(strs,strs_size); //释放内存 free(strs); free(str); system("pause"); return 0; }
原文:http://blog.csdn.net/u013147600/article/details/46301429
内容总结
以上是互联网集市为您收集整理的C语言-动态分配内存对任意个字符串进行排序全部内容,希望文章能够帮你解决C语言-动态分配内存对任意个字符串进行排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。