首页 > 解决方案 > 如何检查字符串中是否不存在char

问题描述

假设我们让用户输入一个字符串名称,"william"然后用户输入他们想要查找索引的字符。

 using namespace std;
 string name;
 char characterToFind;
 cout << "Enter a name ";
 cin >> name;
 cout << "Enter a character to find ";
 cin >> characterToFind;

然后我们想在name字符串数组中找到字符的索引。

for (int j = 0; j < name.length(); j++) {
    if (name[j] == characterToFind) {
        cout << "char is at index: " << j << endl;
    }
}

然后如何检查name字符串数组中是否不存在输入的字符?我尝试执行以下操作:

if (characterToFind != name.find(characterToFind)) {
    cout<< "doesnt exist" << endl;
}

即使输入的字符存在于name字符串数组中,if 语句似乎总是为真并运行代码。

标签: c++arraysstringchar

解决方案


我的方法的问题是我正在做的是在 if 条件下我正在检查 's' 字符与数组的索引位置。

相反,做:

    if (name.find(characterToFind) == std::string::npos) {
       cout << "doesnt exist" << endl;
    }

这是检查字符输入是否等于不存在的位置!这是真的,所以它告诉用户输入的字符不存在。


推荐阅读