Pta中说反话加强版代码实现,c语言实现,及注释讲解
时间: 2023-10-03 10:08:10 浏览: 156
以下是 C 语言实现说反话加强版的代码,同时附有注释讲解:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[1000]; // 输入字符串
char output[1000]; // 输出字符串
char word[100]; // 存储单个单词
int len = 0; // 输出字符串的长度
int word_len = 0; // 当前单词的长度
int i = 0, j = 0; // 循环变量
fgets(input, 1000, stdin); // 读取输入字符串
while (input[i] != '\0') { // 循环遍历字符串
if (input[i] != ' ' && input[i] != '\n') { // 如果不是空格或换行符
word[word_len++] = input[i]; // 存储单词
} else { // 遇到空格或换行符
for (int k = word_len - 1; k >= 0; k--) { // 反转单词
output[len++] = word[k];
}
output[len++] = ' '; // 在单词后面添加空格
word_len = 0; // 重置当前单词的长度
}
i++; // 继续遍历字符串
}
for (j = 0; j < len - 1; j++) { // 输出串最后一个字符是空格,因此只输出到倒数第二个字符
printf("%c", output[j]); // 输出字符
}
printf("\n"); // 输出换行符
return 0;
}
```
该代码使用了 C 语言自带的标准库函数 `fgets()` 读取输入字符串,然后使用循环遍历字符串中的每个字符。当遇到空格或换行符时,将已经存储的单词反转,并存储到输出字符串中;同时在输出字符串中添加一个空格。最后输出输出字符串,并加上一个换行符。
需要注意的是,在 C 语言中没有字符串类型,因此需要使用字符数组来存储字符串。此外,由于输出字符串需要在循环中动态变化,因此需要使用一个计数器来记录输出字符串的长度。
阅读全文