首页 > 解决方案 > 在 C++ 中使用 getline、array 以相反的方式转换所有字符

问题描述

char reversevirkne(char virkne[]) {
    int apgriests, x = 0;

    for (int i = 0; virkne[i] != '\0'; i++) {
        x++;
    }
    x--;
    for (int j = x; j >= 0; j--) {
        apgriests = (int)virkne[j];
        std::cout << virkne[j];
    }

    std::cout << std::endl;
    return 0;
}

这个程序把所有的句子都变成了相反的方向。我需要它只转动单词,以便它们保持在那里的位置。例子:

标签: c++

解决方案


这真的不复杂:

#include <iostream>
#include <string>

void reversevirkne(const char virkne[]) {
  std::string w;

  for (int i = 0; virkne[i] != '\0'; ++i) {
    if (virkne[i] > ' ') // test also manages \t
      w = virkne[i] + w;
    else if (!w.empty()) {
      std::cout << w << ' ';
      w.clear();
    }
  }

  std::cout << w << std::endl;
}

int main(int, char **)
{
  reversevirkne("hello world");
  return 0;
}

推荐阅读