2014-11-01 66 views
-2

我有兩個問題。我需要編寫一個程序來提取所有非字母字符並顯示它們,然後刪除它們。C++如何提取單詞之間的空白如果有一個

我使用因而isalpha這是工作的符號,但只有當輸入字符串具有類似的「Hello World」

沒有空間,但如果是像「你好!世界!」不止一個單詞,它會只提取第一個感嘆號但不是第二個。

這可能與第二個問題,我想我的程序來檢測單詞之間的空格(我試過isspace判斷,但我一定是用錯了?和刪除它們,並把它們放在變量中的字符

所以!例如 如果輸入的是hello4世界How3你今天 我希望它告訴我

刪除:4 刪除: 刪除! 刪除: 刪除:3 刪除: 刪除: 刪除:

長話短說,如果沒有其他方法,我想檢測空格爲!isalpha,或者在文本之間找到與isalpha類似的東西。

感謝

# include <iostream> 
# include <string> 

using namespace std; 

void main() 
{ 
    string message; 


    cin >> message; 

    for (int i = 0; message[i]; i++) 

    if(!isalpha(message[i])) 


     cout << "deleted following character: " << message[i] <<endl; 
     else 
     cout <<"All is good! \n"; 


    } 
+2

獲取與編寫代碼的功課開裂(我注意到,你沒有長期的成員,不明白,我們不自由編寫代碼) – 2014-11-01 07:34:36

+0

我不想讓任何人免費寫我的代碼:)我想告訴我爲什麼isalpha沒有檢測到第二個或第三個字中的符號,只是第一個。 我確實是一個新成員,也是編程和自我教學atm的新手。我通過解決我在網上發現的問題來解決問題,但我被困在這個atm :)謝謝。 PS:我只寫了我想要的輸出內容來解釋我希望它告訴我何時也刪除了一個空格。不要讓你寫下:) – Paralytic 2014-11-01 07:36:58

+0

爲什麼不把你的代碼放在這裏 - 它沒有按預期工作的原因可能是多種原因 – 2014-11-01 07:38:20

回答

0

>>讀一個字,當一個空白字符被發現停止。要閱讀一整行,你想

std::getline(cout, message); 
0

有一個更好的方法,通過它可以得到非字母字符,

你可以用每個字符的ASCI值檢查,如果沒有在它與字母ASCI字符比較&不是空格(空格asci val), 然後你得到你的非字母字符。 你可以得到所有的ASCII碼在這裏:=>http://www.asciitable.com/

-Jayesh

+0

謝謝!我其實並沒有想到這一點。 – Paralytic 2014-11-01 07:53:49

+0

不客氣:-) – 2014-11-01 07:54:29

+0

我仍然想知道,爲什麼'isalpha()'方法不起作用? for循環是否在空格上終止? – Sanchises 2014-11-01 09:09:41

相關問題