C++信息学奥赛1144:单词翻转

C++信息学奥赛1144:单词翻转_第1张图片

#include 
#include 
using namespace std;
int main()
{
  string str;
  // 输入一行字符串
  getline(cin, str);
  string arr;
  for (int i = 0; i < str.length(); i++)
  {
    if (str[i] != ' ')
    {
      arr += str[i]; // 将非空格字符添加到临时存储的字符串中
    }
    else
    {
      for (int j = arr.length() - 1; j >= 0; j--)
        cout << arr[j]; // 反向输出临时存储的字符串
      arr = ""; // 清空临时存储的字符串
      cout << " "; // 输出空格
    }
  }
  for (int j = arr.length() - 1; j >= 0; j--)
    cout << arr[j]; // 输出剩余的临时存储的字符串
}

该段代码实现了以单词为单位,反向输出一行字符串的功能。首先,通过getline(cin, str)语句输入一行字符串。然后,定义一个临时存储字符串arr,用于存储非空格字符。接下来,使用循环遍历字符串的每个字符,如果当前字符不是空格,则将其添加到临时存储字符串中。如果当前字符是空格,则通过逆序循环输出临时存储字符串的字符,并清空临时存储字符串。在每个单词之间输出一个空格。最后,再次逆序循环输出剩余的临时存储字符串。完成反向输出一行字符串的功能。

你可能感兴趣的:(C++信息学奥赛,c++,开发语言)