黑马程序员技术交流社区

标题: 字符串指针 [打印本页]

作者: 李竞还活着    时间: 2015-7-7 00:25
标题: 字符串指针
今天考试,要求比较几个字符串,并正序排列后输出,在比较两个字符串大小后,交换字符串位置的时候,我想借用第三个字符串指针来置换;
但是无论我怎么弄,总是报错,大家谁有好的办法么?
作者: 18678927239    时间: 2015-7-7 00:27
首先要定义 temp, 然后给 用 malloc 函数给temp 开辟一个空间.然后交换数组相邻行地址
作者: 李竞还活着    时间: 2015-7-7 00:28
18678927239 发表于 2015-7-7 00:27
首先要定义 temp, 然后给 用 malloc 函数给temp 开辟一个空间.然后交换数组相邻行地址 ...

....大神,请受小弟一拜
作者: 18678927239    时间: 2015-7-7 00:28
#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; }
作者: zilin    时间: 2015-7-7 22:43
字符串要用copy。
作者: 丁铭检    时间: 2015-7-7 22:51
你这应该是比较字符吧。。字符串怎么比较?
作者: 李竞还活着    时间: 2015-7-10 23:23
zilin 发表于 2015-7-7 22:43
字符串要用copy。

对的,是得用strcpy,而且使用字符串指针还得开辟空间,哎呀!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2