鱼C论坛

 找回密码
 立即注册
查看: 12181|回复: 25

指针数组如何赋值?

[复制链接]
发表于 2015-3-18 21:58:24 | 显示全部楼层

回帖奖励 +1 鱼币

想问楼主问题到底是怎样的,是按三个字符串的大小 排序,还是把三个字符串里的每个字母都拿出来放到一起排序?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-18 22:29:43 | 显示全部楼层
c语言好久没看了,字符数组相关知识记的不是很清楚用文字描述代替,见谅
  1. 定义字符数组 s1[1024]和s2[1024],
  2. int seq[1000] #整形数组记录大小顺序
  3. for(i = 1, i <=1000, i++)seq[i]=i;
  4. #用冒泡排序法
  5. for(i = 999, i >= 0,i--)
  6. {
  7.         for(j = 0,j < i,j++)
  8.         {
  9.                 把第j个字符串赋值给s1
  10.                 把第j+1个字符串赋值给s2
  11.                 比较两者大小
  12.                 如果s1>s2
  13.                 交换seq[j]和seq[j+1]
  14.         }
  15. }
  16. 按照seq数组中保存的顺序输出字符串
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-19 08:54:51 | 显示全部楼层
  1. char *p[30],str[20];
  2. for(i = 0, i <30, i++)
  3. {
  4.         scanf("%s",str);
  5.         p[i] = str;
  6. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-19 08:59:24 | 显示全部楼层
haiouda 发表于 2015-3-19 08:56
你这个,只能输入相同的字符串!而且是最后的那个字符串,因为所有字符串的地址相同。

恩。。刚想了好像确实不对。正想上来改~~
主要是新的字符串必须得有新的地址,那就得先给它申请好地址,直接用一个二元数组不好么。。。
这样的char str[30][20]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-19 09:10:36 | 显示全部楼层
本帖最后由 lightninng 于 2015-3-19 09:12 编辑
haiouda 发表于 2015-3-19 09:02
可以的,这是个好方法,谢谢
可具体怎么实现?

好久没碰c,现在机器 上只有python,写出代码来也不知道对不对[i][i]
  1. char str[30][20];
  2. int i;
  3. for(i = 0, i <30, i++)
  4.         scanf("%s",str[i]);
复制代码


[/i][/i]
[i][i]应该就表示第i个字符串的首地址,但是语言中字符数组和符串似乎略有不同
另外:楼主,别说了了思路你倒是自己先敲点代码试一下啊,等别人的代码还不如自己来~~
[/i][/i]

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-19 09:13:51 | 显示全部楼层
haiouda 发表于 2015-3-19 09:06
是不是要用个三维数组才能实现? 即然是数组,那就得先声明行 和列,这样就对输入有了限制(输入字符串不 ...

请自行参考字符数组相关知识,这个好一点的书都有,你也可以百度,字符数组挺麻烦的,和字符串似乎略有不同~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-1 15:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表