输入一个句子(一行),将句子中的每一个单词翻转后输出。
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
hello world
olleh dlrow
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char word[501];
cin.getline(word, 501);
int len = strlen(word);
int m = 0;
for (int i = 0; i <= len; i++) {
if ((word[i] == ‘ ‘ || word[i] == ‘\0‘) && m) {
int start = i - m, end = i;
for (int j = 0; j < m / 2; ++j) {
char temp = word[start + j];
word[start + j] = word[start + m - 1 - j];
word[start + m - 1 - j] = temp;
}
m = 0;
}
if (word[i] != ‘ ‘) m++;
}
cout << word;
return 0;
}
其实这个题的难度是中下,直接遍历记录就好了。
原文:https://www.cnblogs.com/desperate-me/p/12630103.html