2014-07-25 88 views
0

我需要在for循環中找到由用戶輸入的字符。我通常會做C++ - 如何查找字符串中的(變量)字符?

  • 如果(全文[I] == 'E')

但因爲在這裏, 'E' 將是一個字母字符變量,我不知道如何以獲得該價值進行比較。我不能只是進入

  • 如果(全文[I] == thechar)

,但我也不能創建一個變量包含的字符在引號之間像

  • char2 =「\'」+ thechar +「\'」;

那麼在這種情況下我該怎麼做呢?我不允許使用其他更有效,更高級的方法。這是一門基礎課程。請幫忙!

+0

*我需要找到一個字符* - 引號中的某個字符不是字符。 – chris

+0

'char c ='e'有什麼問題; if(c == sentence [i]){/*...*/}'? – user3553031

+0

它可能不是'e'。我必須cin >> thechar。因此,如果用戶輸入u,我的條件將不得不檢查'u',但我不知道如何創建一個將字符串u轉換爲字符串'u'的變量。我沒有收到{/*...*/}部分。 – blue0

回答

3
string word; 
char letter; 
cout << "Enter a word\n"; 
cin >> word; 
cout << "What letter would you like to search for?\n"; 
cin >> letter; 
for (int i = 0; i < word.length(); i++) 
{ 
    if (word[i] == letter) 
    { 
     cout << letter << " is the " << i + 1 << "character of " << word << endl; 
    } 
} 

您可以創建一個變量,用於詢問用戶想要的字母,然後使用該變量進行比較。

+0

非常感謝。我所教的只是將字符串聲明爲char word [maxwordlength];所以我試圖這樣工作。最後,與其他語言幾乎完全相同。 – blue0

1

要了解所選字母的位置,你可以使用std::string.find(...)

std::string str = "My house is white."; 
std::size_t pos = str.find('s'); 
std::cout << "Position: " << pos << std::endl; 

輸出:

Position: 6 

欲瞭解更多信息請訪問http://www.cplusplus.com/reference/string/string/find/頁。