| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1287 人关注过本帖
标题:循环输入请教,为什么数据输入后不存储在数组里面?运行结果都是“屯”
只看楼主 加入收藏
qq404380
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2012-7-23
收藏
得分:0 
字符串数组的方法

#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char p[20]={0};//申请字符串数组,估算足够大到空间就好
   
    scanf("%d",&i);
    getchar();
    for(j=0;j<i;j++)
    {
        scanf("%c",&p[j]);
        getchar();
    }
    p[i]='\0';
    puts(p);
    return 0;
}
2013-11-29 00:53
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
回复 10楼 qq404380
恩,好的
2013-11-29 13:59
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
回复 10楼 qq404380
恩,好的
2013-11-29 13:59
x906271196
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2013-11-25
收藏
得分:0 
我们还没学到这么高深
2013-11-29 14:31
yaofengfeng
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-11-18
收藏
得分:0 
回复 11楼 qq404380
你这种方法不可取,严重的浪费内存,开辟动态内存为上策,一般高手看到这样的程序会吐血。
2013-11-29 15:58
ytlcainiao
Rank: 2
等 级:论坛游民
帖 子:48
专家分:74
注 册:2013-11-28
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
   
    scanf("%d",&i);
    p=(char *)malloc((i+1)*sizeof(char));
    fflush(stdin);
    for(j=0;j<i;j++)
    {
        scanf("%c",p+j);
    }
    p[j]='\0';
    puts(p);
   
    free(p);
    return 0;
}
能解决问题。。
2013-11-29 16:02
qq404380
Rank: 2
等 级:论坛游民
帖 子:32
专家分:53
注 册:2012-7-23
收藏
得分:0 
回复 15楼 yaofengfeng
申请字符串数组就是靠估算的,
只是在ARM开发之类的程序里估算的要精确罢了,
在C语言里如申请这样的字符串数组 char p[n];
然后在程序下面输入或者计算n的值是不行的,不信你可以试试看。
2013-11-30 00:55
ljw4010
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2013-11-30
收藏
得分:0 
以下是引用thb在2013-11-27 22:55:45的发言:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{   
    int i,j;
    char *p;
    scanf("%d",&i);
    getchar();
    p=(char *)malloc(i*sizeof(char));
    for(j=0;j<i;j++)
    {
        scanf("%c",p+j);
        getchar();
    }
    p='\0';
    puts(p);
   
    free(p);
    return 0;
}

good
2013-11-30 19:16
haiboself
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:196
注 册:2013-10-23
收藏
得分:0 
回复 17楼 qq404380
可以的,用变长数组或者malloc都可以的!
2013-11-30 21:40
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 7楼 haiboself
我的意思是这么简单的问题你居然不能自己定位出来,看来是发现在这里可以吃现成的,把原来的捕食功能退化了。

总有那身价贱的人给作业贴回复完整的代码
2013-12-02 09:27
快速回复:循环输入请教,为什么数据输入后不存储在数组里面?运行结果都是“屯” ...
数据加载中...
 
   



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

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