请教指针数组问题!

ypeaker 2003-10-09 02:30:07
char *str1[20], *str2[20], *str3[20];
char swap();
printf("请输入三个字符串:\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);


printf("%s\n%s\n%s\n",str1,str2[0],str2[1],*str3[0]);
}
谁能告诉我输出各是什么?为什么?
...全文
52 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypeaker 2003-10-10
  • 打赏
  • 举报
回复
按照书上做可以,而且不用for循环 就可输入一串字符!
wing0 2003-10-10
  • 打赏
  • 举报
回复
小强的书的确比较烂。
myctkj 2003-10-10
  • 打赏
  • 举报
回复
潭浩强的书老得掉牙,现在连校对都不做,根本不能看
1)如果要定义定长字符串,用 char str1[20];
2)如果定义指针或不定长字符串,用 char *str1;
以后还必须用malloc 或alloc函数定义内存大小才能用于字符串,使用完后还必须free.
3)如果定义指针数组,才用 char *str1[20];



TianGuangZao 2003-10-10
  • 打赏
  • 举报
回复
没听说过输入一串字符必须要用 for 循环的。
scanf 本身就可以接受字符串的。

我想老谭的题目是别有用心吧!楼主贴的时候没贴出题目要求,造成断章取义。
char *str1[20];
每个指针占 4 个字节空间。
scanf("%s",str1);
相当于 char str1[80]; 把指针数组当成字符数组来用了。
printf("%s\n%s\n%s\n",str1,str2,str3);
就可以正常打印。
printf("%s\n",str2[0]);
惨了!我得到的是段错误。本身就是一种错误写法。
shanweibing 2003-10-09
  • 打赏
  • 举报
回复
显然是书上错了,应该是char str1[20], str2[20], str3[20];
ypeaker 2003-10-09
  • 打赏
  • 举报
回复
我是按照潭浩强 c语言习题集上的答案做的! 他就是这么写的,我也很奇怪!
题目是 输入三个字符串,按由小到大输出!
TianGuangZao 2003-10-09
  • 打赏
  • 举报
回复
"
char *str1[20], *str2[20], *str3[20];
char swap();
printf("请输入三个字符串:\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);

printf("%s\n%s\n%s\n",str1,str2[0],str2[1],*str3[0]);
"
你要实现什么呢???
char *str1[20] 表示 a array of pointer point to char。也就是包含 20 个指针的数组。
printf("请输入三个字符串:\n");
scanf("%s",str1);
相当于
scanf("%s", &str1[0]);
str1[0] 是数组所包含的第一个指针,难道你想把字符串赋予一个指针吗?

正确的定义是:
char str1[20], str2[20], str3[20];
表示定义一个包含20个字符的数组。

char (*str1)[20], (*str2)[20], (*str3)[20];
这是数组指针, str1 is a pointer point to a array which include 20 charaters.
vsfan 2003-10-09
  • 打赏
  • 举报
回复
还有一点char *str1[20], *str2[20], *str3[20];似乎错了
应该是char str1[20], str2[20], str3[20];
vsfan 2003-10-09
  • 打赏
  • 举报
回复
用puts()输出比较好
努力偷懒 2003-10-09
  • 打赏
  • 举报
回复
char是字符,%s是字符串!
lp1983 2003-10-09
  • 打赏
  • 举报
回复
问题对吗?输出单个元素用%c,输出可能出错
Wolf0403 2003-10-09
  • 打赏
  • 举报
回复
结果:自己编译一下就知道了。
str1 是 char**,用 printf("%s" 输出当然出错

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧