我需要將諸如「我的名字是thomos」的字符串轉換爲「ym eman si somoht」。爲了做到這一點,我需要知道什麼?如何反轉單詞?
如何反轉單詞?
回答
使用函數strtok分割成詞 對於每一個字,扭轉串並追加到輸出,具有空間一起
一種可能性是使用std::copy
與一對std::reverse_iterator
S,你可以得到與rbegin
和rend
。
除此之外,你可能會想使用類似於std::istringstream
的東西來將字符串分解爲單詞進行處理。
我不會提供代碼,因爲這味道太像功課。但我會盡力讓你朝正確的方向發展。
您首先必須將該句子切成單詞。您可以通過使用operator>>(std::istream&,std::string&)
將它從流中讀取(字符串流將在如果您恰好將其放在字符串中),將其讀入字符串中。
然後,你必須扭轉個別字符串。您可以使用C++標準庫中的std::reverse()
。
然後你所要做的就是把這些單詞寫到輸出流中,並在它們之間放置空格。
或者,您可以輸出字符串反轉,如傑裏建議。
我想這是毫無疑問的,我可以知道爲什麼這是低票? – sbi 2010-09-24 18:41:45
如果你從C風格的字符串的角度來看這件事(因爲我不得不第一次爲作業做這個問題),你可能想嘗試一些指針。這是我經歷的基本操作順序。如果你正在使用std :: string我很確定這不會工作,但它可能。這真的意味着c風格的字符串和教人們使用指針。
創建2個指針和一個臨時交換字符。
增加第二個指針,直到它引用空終止字符。迅速將其刪除一個。
將第一個指針與第二個指針引用的內容進行交換,直到指針遇到或通過。
public static void main(String[] args) {
StringBuffer buffer=new StringBuffer();
buffer.append("my name is thomos");
buffer.reverse();
String str=buffer.toString();
String arr[]=str.split(" ");
int length=arr.length;
for(int i=length-1;i>=0;i--)
{
System.out.print(arr[i]+" ");
}
}
這裏我們使用字符串緩衝區和字符串 因爲字符串函數不支持反轉功能 也斯汀緩衝犯規支持分割功能這就是爲什麼我們正在採取的字符串值。
邏輯是 第一扭轉整個字符串 那麼我們將得到
「somoht SI埃曼YM」
那麼我們將使用空間拆分此字符串,所以我們會得到個別串
接下來我們只是想從數組的末尾進行迭代,並將其打印出來或將其存儲在一個新的數組中 我們將得到輸出爲
「YM EMAN SI somoht」
- 1. 如何反轉一個單詞?
- 2. C關於單詞反轉
- 3. 如何反轉字符串中的每個單詞(單獨)?
- 4. 保留單詞順序的單詞中的反轉字符
- 5. 字符數組中的單詞反轉
- 6. 在相同的String []中反轉單詞?
- 7. 如何反轉字符串中的單詞?
- 8. 如何使用python(手動)反轉字符串中的單詞?
- 9. 如何在鏈表中反轉句子的單詞?
- 10. 如何反轉nasm中的字符串中的每個單詞?
- 11. 如何反轉字符串中兩個單詞的順序?
- 12. 如何調試我的程序以反轉一個單詞?
- 13. 如何在使用堆棧時反轉字符串中的單個單詞?
- 14. 如何將單詞列表轉換爲單詞數組
- 15. 如何將[]中的單詞轉換爲單詞?
- 16. 如何使用perl將單詞轉換爲單詞?
- 17. 單詞轉換
- 18. 如何將1 - 1000轉換爲單詞?
- 19. 如何將單詞轉換爲鏈接?
- 20. 如何將數字轉換爲單詞?
- 21. 如何將日期轉換爲單詞?
- 22. 如何將單詞轉換爲句子?
- 23. 如何用CSS旋轉多個單詞?
- 24. 取反多個單詞
- 25. 如何反轉?
- 26. 如何反轉字符串中的單詞順序(不是字母)?
- 27. 如何更改或反轉Objective C中String對象中單詞的位置?
- 28. 如何讓程序打印連字符後的單詞的反轉?
- 29. 如何在Excel 2010中反轉訂單
- 30. 如何反轉或反轉鍵值?
問題是標記'[C++]'。有比strtok更好的解決方案。 – 2010-09-23 09:56:49