标签:else 回车 print 记录 循环 超过 ace turn 过多
#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()) != ‘\n‘){ //遇到回车跳出while循环
str[i++] = ch;
if (i == MAX - 1){ //当输入达到20字符,跳出if循环
break;
}
if (ch == ‘ ‘){
//遇到空格时,记录空格位置(在while循环内,会一直更新i,直到循环结束)
space = i;
}
}
if (i >= MAX - 1){
str[space] = ‘\0‘;//输入文本过多,有空格则截取接近末尾的空格
//文本没有空格,截取前20字符,再加结束符‘\0‘
}
else{
str[i] = ‘\0‘;//少于20字符,直接加‘\0‘
}
printf("您输入的文本是:%s\n", str);
system("pause");
return 0;
}
标签:else 回车 print 记录 循环 超过 ace turn 过多
原文地址:https://www.cnblogs.com/Leafbud/p/12604016.html