检查字符串以匹配Char变量

时间:2016-04-21 04:32:10

标签: c++ string

我编写了一个简短的程序,它接受用户输入,然后检查字符串是否与用户输入匹配,但是我需要添加另一个检查用户输入的函数,确保用户输入在字符串中,如果不是返回错误。

以下是我的参考代码:

const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,’ ";
int main()
{
    char letter; //Variable holding user entered letter 
    cout << "Please enter letter in the aplhabet:" << endl;
    cin >> letter;
    cout << "The Position of " << letter << " in the string is: " << ALPHABET.find(letter) << endl;

    return 0;
}

我想我应该添加一个if / else语句,首先检查输入是否正确,是否输出字符串中的位置,如果没有返回错误。

2 个答案:

答案 0 :(得分:2)

如果你想要花哨,你可以编写自己的功能。但是,string::find()没问题。您需要检查的是返回的索引是否有效。

// Example program
#include <iostream>
#include <string>

using namespace std;


const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,’ ";
int main()
{
    char letter; //Variable holding user entered letter 
    string::size_type index; //Index where char is found in string
    cout << "Please enter letter in the aplhabet:" << endl;
    cin >> letter;

    index =  ALPHABET.find(letter);

    if (index == string::npos)
        cout << "Error, letter not found" << endl;
    else
        cout << "The Position of " << letter << " in the string is: " << index << endl;

    return 0;
}

答案 1 :(得分:0)

if / else语句听起来不错。如果这不起作用,还有其他多种方式。