#include
#include
int main(void){
char a[100][100],c;
int length,i;
length=80;
i=0;
while((c=getchar())!='\n'){
if(c==' '){
a[length][i]='\0'; //这一步很重要,防止 字符数组 输出过界
length--;
i=0;
continue;
}
else {
a[length][i]=c;
i++;
}
}
a[length][i]='\0';
for(i=length;i<81;i++){
if(i==80){
printf("%s",a[80]);
break;
}
else printf("%s ",a[i]);
}
return 0;
int main(void){ // 定义主函数。
char a[100][100],c; // 定义一个二维字符数组 a,用于存储输入的字符串。定义字符变量 c,用于逐个读取输入的字符。
int length,i; // 定义整型变量 length 和 i,用于记录字符串的长度和当前位置。
length=80; // 将 length 初始化为 80,表示字符串的最大长度为 80 个字符。
i=0; // 将 i 初始化为 0,表示当前位置为字符串的开头。
while((c=getchar())!='\n'){ // 循环读取字符,直到遇到换行符 \n(输入的字符串结束)为止。
if(c==' '){ // 如果当前字符是空格,则执行以下操作:
a[length][i]='\0'; // 将当前单词的结尾设置为字符串结束符,防止字符数组输出过界。
length--; // 减少字符串的长度,为下一个单词腾出空间。
i=0; // 重置当前位置为单词的开头。
continue; // 继续读取下一个字符。
}
else {
a[length][i]=c; // 将当前字符存储在二维字符数组 a 的当前位置。
i++; // 增加当前位置的索引。
}
}
a[length][i]='\0'; // 在最后一个字符存储完毕后,将最后一个单词的结尾设置为字符串结束符。
for(i=length;i<81;i++){ // 从 length 开始,循环遍历数组中存储的单词。
if(i==80){ // 如果当前位置是数组的结尾位置:
printf("%s",a[80]); // 输出该位置的单词。
break; // 跳出循环。
}
else
printf("%s ",a[i]); // 输出当前位置的单词,并在单词之后加上一个空格。
}
return 0; // 返回 0,表示程序执行成功。
}