先定义三个元素个数同为21的字符数组str1、str2,之后分别用getchar()/putchar()、gets()/puts()实现输入

先定义三个元素个数同为21的字符数组str1、str2,之后分别用getchar()/putchar()、gets()/puts()实现输入、输出功能。给我代码,不要复制... 先定义三个元素个数同为21的字符数组str1、str2,之后分别用getchar()/putchar()、gets()/puts()实现输入、输出功能。
给我代码,不要复制粘贴,这是C++,特别是getchar和putchar这一块的循环是怎么回事?求救啊
展开
 我来答
tieyingfeag
推荐于2017-12-15 · TA获得超过457个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:143万
展开全部

getchar和putchar都是对字符操作的,而不是字符串,所以需要设计循环为字符串中每一个字符赋值,以下是示例代码,需要说明的一点是gets输入字符串对于字符串长度没有限制,可能导致越界溢出,不安全,建议改用fgets,另外在新的微软标准中gets函数已被gets_s函数代替,希望对你有帮助。

#include <stdio.h>
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;
}
雨诺与诺
2015-03-09 · TA获得超过1213个赞
知道小有建树答主
回答量:2179
采纳率:33%
帮助的人:684万
展开全部
因为getchar是获得一个字符,所以要循环,gets是获取字符串,不需要循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式