這個問題在這里已經有了答案: C 查找方法不起作用 3 個答案 10 小時前關閉。
我正在撰寫一個代碼來確定 string s 中有多少個字符也在 j 中
這是我的代碼:
string j,s;
cin >> j >>s;
int count=0;
for(int i=0;i<j.size(); i){
if(s.find(j[i])){
count;
}
}
cout << count 1 << endl;
問題是 s.find 不適用于 j[0] 并且當用戶輸入 none 作為字串 s 時,它認為它是關鍵字 none。
我怎樣才能解決這個問題?我使用 clang 13.0.0 GNU nano 6.0 作為我的編輯器
uj5u.com熱心網友回復:
string::find不回傳布林值,而是匹配字符的位置(從 0 到size()-1)或 string::npos(如果它沒有找到任何內容)。
https://en.cppreference.com/w/cpp/string/basic_string/find
改為使用if(s.find(j[i]) != std::string::npos)。
uj5u.com熱心網友回復:
來自std::string::find的檔案:
回傳值
找到的子字串的第一個字符的位置,或者
npos如果沒有找到這樣的子字串。
所以,測驗應該是:
if (s.find(j[i]) != std::string::npos)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/421218.html
標籤:
