c语言利用循环给字符数组赋值

就是窗口打开后输入一行字符,回车后将输入的字符(不含回车)赋值给一个字符数组。。循环部分怎么编写请问。。还有。。打印的时候只能用循环一个一个打印么?不能用printf("%s",string)这样的来蛮。。?菜鸟一个,老鸟见谅~!

#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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-29
可以用puts();
下面看我写的代码

#include <stdio.h>
void main()
{
char str[123];
getchar();//吃掉回车
gets(str);//读入字符串
puts(str);//输出字符串
}
先是赋值给str然后输出,用了puts()函数。
望采纳哈!!
第2个回答  2010-10-29
#include<stdio.h>
void main()
{
char s[200];
int i,j;
for(i=0;(s[i]=getchar()) != '\n';i++);
for(j=0;j < i; j++)
printf("%c\n",s[j]);

}