课后作业:19.1(动动手)
#include <stdio.h>#include <string.h>
#define MAX 21 // 包含结束符就是21个字符
int main()
{
int ch, space, i = 0;
char str;
space = MAX - 1;
printf("请输入一行文本:");
while ((ch = getchar()) != '\n')
{
str = ch;
if (i == MAX - 1)
{
break; // 到了字符数组最后一个位置
}
if (ch == ' ')
{
space = i; // 记录最后一个空格的位置
}
}
if (i >= MAX - 1)
{
str = '\0';
}
else
{
str = '\0';
}
printf("你输入的文本是:%s\n", str);
return 0;
}
这个程序没看太懂,求师兄师姐帮忙注释一下,谢谢
#include <stdio.h>
#include <string.h>
#define MAX 21 // 包含结束符就是21个字符
int main()
{
int ch, space, i = 0;
char str;
space = MAX - 1;//下标为0-20,space为数组最后一个元素下标
printf("请输入一行文本:");
while ((ch = getchar()) != '\n')
{
str = ch;
if (i == MAX - 1)
{
break; // 到了字符数组最后一个位置
}
if (ch == ' ')
{
space = i; // 记录最后一个空格的位置
}
}
if (i >= MAX - 1)
{
str = '\0';
//输入字符数大于等于20个,有空格则截取至最接近末尾的空格
//无空格时space=MAX-1,即字符数组最后一位,加'\0'截取前20个字符
}
else
{
str = '\0';//输入字符少于20个,直接在末尾加'\0',结束字符串
}
printf("你输入的文本是:%s\n", str);
return 0;
}
页:
[1]