按要求打印20个字符

Posted leafbud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按要求打印20个字符相关的知识,希望对你有一定的参考价值。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 21

//要求 A:定义一个长度为 21 的字符数组,用于存放用户输入的文本;
//要求 B:如果用户输入的文本长度超过 20 个字符,
//且文本中存在空格,则截取至最接近末尾(第 20 个字符串)的空格;
//要求 C:如果用户输入的文本长度超过 20 个字符,
//且文本中不存在空格,则打印前 20 个字符
int main()
{
 int ch, space, i = 0;
 //i为文本输入时的位置
 //ch是输入的文本
 char str[MAX];
 space = MAX - 1; // 下标为 0-20,space为数组最后一个元素下标

 printf("请输入一行文本:"); 

 while ((ch = getchar()) != ‘ ‘){ //遇到回车跳出while循环
  str[i++] = ch;
  if (i == MAX - 1){ //当输入达到20字符,跳出if循环
   break;
  }
  if (ch == ‘ ‘){  
   //遇到空格时,记录空格位置(在while循环内,会一直更新i,直到循环结束)
   space = i;
  }
 }
 if (i >= MAX - 1){
  str[space] = ‘‘;//输入文本过多,有空格则截取接近末尾的空格
  //文本没有空格,截取前20字符,再加结束符‘‘
 }
 else{
  str[i] = ‘‘;//少于20字符,直接加‘‘
 }
 printf("您输入的文本是:%s ", str);

 system("pause");
 return 0;
}

以上是关于按要求打印20个字符的主要内容,如果未能解决你的问题,请参考以下文章

1027. 打印沙漏(20)

1027 打印沙漏 (20分)

自测-1 打印沙漏 (20 分)

1027 打印沙漏 (20 分)

PAT 1027. 打印沙漏(20)

自测-1 打印沙漏 (20分)