我正在创建一个C++程序,其中每个人以字符串的形式输入他们的名字,程序根据每个名字包含的字母输出语句。
例如,如果一个人的名字中有字母"y",它应该显示某个语句,但如果他们有"a“和"y”,则语句应该是不同的。
这个程序可以类似于命理学,如果你的名字中有某些字母,它应该输出一个给定的语句。
为了做到这一点,我需要知道如何从>用户输入中获取一个字符串,并分别查看每个字符。我该怎么做呢?
发布于 2016-10-14 08:29:11
我不确定我是否完全理解您的问题,但这应该会有所帮助。
把一个字符串想象成一个字符数组。如果你有一个字符串,
string entry = "John Smith";然后你打电话给
cout << entry[0];entry将返回条目中的第一个字符'J‘。
有了这些知识,您应该能够获取一个姓名条目,并使用if语句来测试字符串中的字母。
string entry;
cout << "What is your name?" << endl;
// Sets entry equal to what is typed in:
getline(cin,entry);
//Tests for letters:
if (entry[0] == 'J' && entry[1] == 'o') {
    cout << "Oh, your name starts with J, and the second letter is o" << endl;
}
else if (entry[0] == 'J') {
    cout << "Oh, your name starts with J and the second letter is not o." << endl;
}在这一点上,您可以对if语句执行的操作没有限制。如果想要在字符串中的任何位置找到某个字母,而不是某个位置,请使用for循环。
for (int i = 0; i < entry.size(); i++) {
    if (entry[i] == 'a') {
        cout << "Oh, there's an a somewhere in your name." << endl;
    }
}希望这能有所帮助!
https://stackoverflow.com/questions/40032961
复制相似问题