getchar和putchar都是对字符操作的,而不是字符串,所以需要设计循环为字符串中每一个字符赋值,以下是示例代码,需要说明的一点是gets输入字符串对于字符串长度没有限制,可能导致越界溢出,不安全,建议改用fgets,另外在新的微软标准中gets函数已被gets_s函数代替,希望对你有帮助。
#include
int main()
{
const int count = 21;
char str1[count];
char str2[count];
char ch;
/////////////////////////////////
printf("请str1输入字符串(getchar方式):\n");
int i = 0;
while ((ch=getchar())!='\n')
{
str1[i] = ch;
i++;
if (i == count-1)
{
str1[count - 1] = '\0';
break;
}
}
str1[i++] = '\0';
printf("下面输出str1(putchar方式):\n");
int j = 0;
while (str1[j] != '\0')
{
putchar(str1[j]);
j++;
}
/////////////////////////////////////////////////
printf("请str1输入字符串(gets方式):\n");
gets(str2);
printf("下面输出str1(puts方式):\n");
puts(str2);
return 0;
}