2011-01-10 52 views
2

可能重複:
C++ Reverse Array反轉字符數組

我可如何扭轉一個字符數組?就像這樣:

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

字類型是什麼陣列? – XAder 2011-01-10 13:10:21

+0

你正在使用什麼語言? – Badr 2011-01-10 13:12:18

+0

@moon:標籤暗示C++;) – jwueller 2011-01-10 13:13:25

回答

3

怎麼樣一個簡單的循環(因爲我不知道的word1word2的確切類型)?

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

我強烈建議你使用std::string而不是char。有關如何在std::string這裏執行此操作的很多答案。

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

使用字符串反轉函數來執行相同的操作。

3

我斗膽類似如下:

  1. 複製word1word2,使用std::copy
  2. std::reverse與WORD2開始到結束

現在word2包含反向,不能不知道類型就說更多。

0

如果word1和word2是char數組,則不會。如果改爲word1和word2是某種容量爲10的對象,則可以覆蓋賦值運算符。

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

http://ideone.com/drunA

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