参考代码:
#include <stdio.h> #include <math.h> #include <string.h> void sort(char **p,int n) //用于排序的函数,n代表有几个字符串,要比几次 { char *temp; //中间变量temp int i,j; for(i=0;i<n;i++) //i和j对比,此时的重点在于排列p数组中的顺序 { for(j=i+1;j<n;j++) { if (strcmp(p[i], p[j]) > 0) //比较两个字符串,若前者更大就交换两者的在p中的顺序 //最后按p的顺序输出,对应了从小到大 { temp = p[i]; p[i] = p[j]; p[j] = temp; //交换两个字符串在p中的位置(指针层面) } } } } int main() { int i; char s[3][100]; //3代表3段字符串,100是字符串的最大长度 char *p_s[3]; //这是一个数组,数组里的元素都是指针 char **p; //二级指针p,表示它是一个指向指针的指针 for(i=0;i<3;i++) { gets(s[i]); //这里的s实际是个二维数组,比如说第一次i=0输入的内容是s[0][...] p_s[i]=s[i]; //将s[0], s[1], s[2]找出来,即每句话的首地址,然后给指针数组p_s } p=p_s; //将指针数组p_s的首地址给二级指针p sort(p,3); for (int i = 0; i < 3; i++) puts(p_s[i]); //不能用 puts(p),因为p是一个指针 //不能用 puts(p_s),因为p_s是一个存放指针的数组 //能用 puts(p_s[i]),因为每个 p_s[i]都指向一个字符串 return 0; }
0.0分
0 人评分
不容易系列2 (C语言代码)浏览:1360 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1055 |
IP判断 (C++代码)浏览:731 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:776 |
C二级辅导-统计字符 (C语言代码)浏览:578 |
简单的a+b (C语言代码)浏览:677 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:531 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:1001 |
【明明的随机数】 (C语言代码)浏览:846 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:575 |