反转字符数组

时间:2011-01-10 13:08:06

标签: c++

  

可能重复:
  C++ Reverse Array

如何反转字符数组?像这样:

char word1[10] = "this"; 
char word2[10] = word1[10] // in reverse 
cout<<word2; // I want it to output "siht"

7 个答案:

答案 0 :(得分:8)

std::string word1 = "this";
std::string word2 = word1;
std::reverse(word2.begin(), word2.end());
std::cout << word2;

答案 1 :(得分:3)

一个简单的循环怎么样(因为我不知道word1word2的确切类型?)

for (int i = 0, k = 9; i < 10; i++, k--) {
    word2[k] = word1[i];
}

我强烈建议您使用std::string代替char。关于如何使用std::string来解决这个问题,有很多答案。

答案 2 :(得分:3)

我会冒这样的事情:

  1. 使用word1
  2. word2复制到std::copy
  3. std::reverse,word2开始结束
  4. 现在word2包含反向,在不知道类型的情况下不能多说。

答案 3 :(得分:2)

使用字符串反转功能执行相同操作。

答案 4 :(得分:0)

如果word1和word2是char数组,那么nope。如果word1和word2是某种容量为10的对象,你可以覆盖赋值运算符。

答案 5 :(得分:0)

int main(int, char**) {
    std::string word1 = "beef";
    std::string word2(word1.rbegin(), word1.rend());
    std::cout << word2;
}

http://ideone.com/drunA

答案 6 :(得分:0)

std::reverse_copy(word1, word1+10, word2);