2012-09-25 54 views
-1

我有可能的輸入1M 2M .. 11M和1Y(M和Y代表幾個月),我想輸出「somestring1 somestring2 ....和somestring12」註釋M和Y被刪除,最後一個字符串更改爲12如何從字符串中刪除字符並在需要時更改數據?

Example: input "11M" "hello" output: hello11 
      input "1Y" "hello" output: hello1 



char * (const char * date, const char * somestr) 
{ 
    // just need to output final string no need to change the original string 
    cout<< finalStr<<endl; 
} 
+3

呃,什麼問題? –

+4

問題不太清楚.. 你能再多解釋嗎 –

+0

舉一個輸入和期望輸出的例子。 – Dialecticus

回答

0

這個功課?如果沒有,這是我的建議。 (我問作業,因爲你可能有限制,而不是因爲我們不在這裏幫助)

1)在你的字符串中找到'M'(使用find),在該處插入'\ 0'如果發現一個位置(順便說一句,我假設你有很好的格式化輸入)

2)找到'Y'。如果找到一個,請在該位置插入一個'\ 0'。然後對您的字符串執行atoi()或stringstream轉換以轉換爲數字。乘以12.

3)串聯的第1部分或第2部分的字符串表示到您somestr

4)輸出。

這可能可以在< 10行,如果我可以打擾。 a.find('M')部分及其檢查可以是條件運算符,那麼轉換/連接最多在兩行或三行。

2

第二個字符串作爲一個整體獲得輸出。所以它的輸出沒有變化。 只要遇到MY,就會輸出第二個字符串。由於Stack Overflow阻止提供確切的源代碼,所以我可以給你一些它的一部分。有一個條件可以由你自己決定(第二個答案也是如此) 代碼會有點像這樣。

//Code for first string. Just for output. 
for (auto i = 0 ; date[i] != '\0' ; ++i) 
{ 
    // A condition comes here. 
    cout << date[i] ; 
} 

並注意,這是考慮你只是輸出字符串。否則,您可以創建另一個字符串並將它們相加或連接現有的字符串。

相關問題