A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李竞还活着 中级黑马   /  2015-7-7 00:25  /  1045 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天考试,要求比较几个字符串,并正序排列后输出,在比较两个字符串大小后,交换字符串位置的时候,我想借用第三个字符串指针来置换;
但是无论我怎么弄,总是报错,大家谁有好的办法么?

6 个回复

倒序浏览
首先要定义 temp, 然后给 用 malloc 函数给temp 开辟一个空间.然后交换数组相邻行地址

评分

参与人数 1黑马币 +6 收起 理由
李竞还活着 + 6 很给力!

查看全部评分

回复 使用道具 举报 1 0
18678927239 发表于 2015-7-7 00:27
首先要定义 temp, 然后给 用 malloc 函数给temp 开辟一个空间.然后交换数组相邻行地址 ...

....大神,请受小弟一拜
回复 使用道具 举报
#include <stdio.h> #include <string.h> #include <stdlib.h> //用冒泡排序法进行排序 void Maopao(char *arr[5]){     char *temp;     for (int i=0; i<5-1; i++) {         for (int j=0; j<5-i-1; j++) {             temp=malloc(sizeof(arr[i]));             //比较相邻元素的大小             if(strcmp(arr[j],arr[j+1])>0){                                  temp=arr[j+1];                 arr[j+1]=arr[j];                 arr[j]=temp;             }         }     } } //输出排序后的结果 void print_arr(char *arr[5]){     for(int i=0;i<5;i++){         printf("%s\n",arr[i]);     } } int main(int argc, const char * argv[]) {     //定义数组     char *arr[5]={"heima","itcast","TingHua","Peking","shuangYuan"};     Maopao(arr);     print_arr(arr);     return 0; }
回复 使用道具 举报
字符串要用copy。
回复 使用道具 举报
你这应该是比较字符吧。。字符串怎么比较?
回复 使用道具 举报
zilin 发表于 2015-7-7 22:43
字符串要用copy。

对的,是得用strcpy,而且使用字符串指针还得开辟空间,哎呀!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马