c语言循环里把字符塞入字符串数组?

不清楚是哪个函数啊。。这个问题是这样得,循环里面,每次得到一个字母c,用什么能把这个每次不一样的c塞入一个buf啊,一个一个塞,我只会buf[i]=c,但是出来的结果乱七八糟!另外,怎么定义这个buf[]的大小,能让我每次打印的buf都不要有i很多乱码(有时候c连起来很长)

主函数开始定义数组,可以定义到最大,接着就要给数组进行清楚,不清楚就会有很多乱码,这是都会的关键,buf[100]=Null
关于你说的输出,也是要用循环一个一个存的,我想应该是你的i产量不是每个都要输出,判断合适才输出,然后再用i产量赋值给数组,导致中途判断不需要的位置乱码,这是个要多增加一个产量j,j=0在循环中,当每次判断Ok,就给j加1,把出来的c赋值给buf[j]不要给i,这样就一个乱码都没了,
后面的是猜的,没看到你的代码,不过99%m应该是这个问题,听你的描述
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-04
大小得在声明buf的时候,buf[长度]
一次一存得先声明一个int临时变量,然后在循环里循环这个临时变量
然后buf[临时变量]=c追问

电脑关了,还想详细问一下,首先buf()=c,这条语句没问题,那导致结果buf里面有很多乱七八糟乱码(我要的那些字母c也在里面,是因为buf长度没弄好所导致的吗)

追答

可能是数组访问越界。

第2个回答  2019-12-04
#include <stdio.h>
int main()
{
char c;
char cstr[256]; // 输入字符不要超过255
int i = 0;
while(scanf("%c", &c), c!='\n') // 判断是否回车
{
cstr[i++] = c; // 不是回车都赋值给字符串数组
}
cstr[i] = '\0'; // 字符串结束符
i=0;
while(cstr[i]!='\0') // 判断字符串是否结束
{
printf("%c", cstr[i]);
}
printf("\n"); // 输入回车换行
return 0;
}
最简单的代码:
#include <stdio.h>
int main()
{
char cstr[256];
scanf("%s", cstr);
printf("%s\n", cstr);
return 0;
}追问

大哥,我不要键盘输入的字符啊,不要scanf!在循环里,每次都有一个变化的字母,我要把我每次这个变化的字母一点一点传入一个字符串数组

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网