2015-05-18 45 views
-2

我必須將使用鍵盤輸入的字符插入到按字母順序排列的字符串中,並且該字符必須放在正確的字母位置。但我不能使用std::sort函數或任何類型的排序,因爲字符串已經排序,我需要直接在正確的位置插入字符。 我做了一個for循環和如果來比較,但輸入字符時,我得到一個錯誤......C++在不同的位置上插入字符串

for (int i = 0; i < myString.length(); i++) 
{ 
    if (myChar < myString[i]) 
    { 
     myString.insert(myString[i], 1, myChar); 
    } 

} 

你可以幫我找出我錯過了什麼?

我得到的錯誤是R6010 - abort()已被調用。

也爲myString.insert(i, 1, myChar);當我輸入字符時沒有任何反應。編輯:我只是不得不添加休息;在循環結束時行。

for (int i = 0; i < myString.length(); i++) 
{ 
    if (myChar < myString[i]) 
    { 
     myString.insert(i, 1, myChar); 
     break; 
    } 


} 
+2

如果你解釋了你遇到的錯誤,可能會有幫助 –

+1

[此插入引用](http://en.cppreference.com/w/cpp/string/basic_string/insert)可能會幫助你。或者,真的,*任何*種參考或文檔。 –

+0

您正在使用'myString [i]'作爲索引。 – molbdnilo

回答

0

插入後的循環必須以break爲終止,因爲在第一次之後您的條件可能會滿足很多次。

你最好追加myChar,然後度假myString。

+0

我只需要添加break;行xD完全覆蓋了我的頭。感謝芽。 –

相關問題