标题:如何输入字符串数组
只看楼主
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
结帖率:100%
已结贴  问题点数:20 回复次数:14 
如何输入字符串数组
本人编写以下代码,想利用循环联系输入“QWERTYUIOP”、“ASDFGHJKL;”、“ZXCVBNM,./”个字符串数组再把输入的三个字符串依次输出。
结果输出的三个字符串如下:
QWERTYUIOPASDFGHJKLZXCVBNM
ASDFGHJKLZXCVBNM,./
ZXCVBNM,./
百思不得其解,请有兴趣的高手帮忙,谢谢!
代码:
#include<stdio.h>
#include<string.h>
void main()
{
    char str[3][10];
    int i;
    printf("请输入三个字符串:\n");
    for(i=0;i<=2;i++)
    gets(str[i]);
    printf("输入三个字符串如下:\n");
    for(i=0;i<=2;i++)
    printf("%s\n",str[i]);
}
搜索更多相关主题的帖子: void include 字符串 如何 
2013-04-27 20:19
鈴蘭
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:145
注 册:2013-4-1
得分:20 
s%遇到\0才终止

[ 本帖最后由 鈴蘭 于 2013-4-27 22:19 编辑 ]

菜鸟一枚,回复如有错误,还望谅解!
2013-04-27 22:16
万光海
Rank: 3Rank: 3
来 自:桂林
等 级:论坛游侠
帖 子:92
专家分:133
注 册:2012-10-21
得分:0 
printf("%s\n",str[i])应该是这样吧? printf("%s\n",&str[i])有个&吧,个人意见
2013-04-27 22:17
万光海
Rank: 3Rank: 3
来 自:桂林
等 级:论坛游侠
帖 子:92
专家分:133
注 册:2012-10-21
得分:0 
错了错了,看错看错
2013-04-27 22:17
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
得分:0 
我发现如果输入的字符少于十个的话可以正确输出,书上也说字符串结束的标志是\0,数组在内存中是连续的一块区域,如果每个数组都输入十个字符的话就没有地方放这个结束的标识了,我想可能是这个原因!
2013-04-27 22:18
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2391
专家分:13384
注 册:2013-3-3
得分:0 
这是由于scanf函数输入后,是在缓冲区内,所以造成的,你清除缓冲就可。

Maybe
2013-04-27 22:23
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
得分:0 
回复 5楼 Explorerlxz
确实如你所说,谢谢!
2013-04-28 09:56
a18300766880
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-4-26
得分:0 
gets(&str[i]),目测少了取址符&
2013-04-29 19:57
折翼断JJ
Rank: 2
等 级:论坛游民
帖 子:7
专家分:19
注 册:2013-4-29
得分:0 
是可以,因为循环3次,输入3个字符串。所以输入第一个字符串之后,enter。第二个,enter.....
就可以得到结果了。
2013-04-29 21:38
zhu_zhi
Rank: 2
来 自:广西百色
等 级:论坛游民
帖 子:129
专家分:92
注 册:2013-4-25
得分:0 
回复 9楼 折翼断JJ
谢谢!
2013-05-27 16:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405701-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.055000 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved