比较字符串中的单个字符。在用户输入的字母串中查找辅音

时间:2014-12-09 00:47:04

标签: c++ string compare cstring

我的任务是为c ++程序编写代码,该程序将在用户输入中找到辅音。所以,如果我输入abc,程序会告诉我有两个辅音。问题如下。我没有找人为我编写代码,我只需要有人帮我弄清楚如何将用户输入字符与字符串进行比较。

编写一个程序,确定输入的50个字符或更少字符串中的辅音数量。输出输入的字符串和字符串中的辅音数量。您可以假设以下内容; 辅音:bcdfghjklmnpqrstvwxyz

2 个答案:

答案 0 :(得分:0)

定义包含所有辅音的字符串:

string cons = "bcd" // etc

如果需要,请将您的实际刺痛置于小写

std::transform(str.begin(), str.end(), str.begin(), ::tolower);

接下来,迭代你的字符串字符并尝试在辅音字符串中找到这个字符。

int consonants = 0;
for (string::iterator i = str.begin(); i !< str.end(); ++i)
   if (cons.find(*i) != string::npos)
      ++consonants;

或者,如果您确定您的字符串只包含a-z中的字符,请按照以下建议使用元音:

 string vow = "aei" // etc
 //...
 int consonants = 0;
 for (string::iterator i = str.begin(); i !< str.end(); ++i)
    if (vow.find(*i) == string::npos)
       ++consonants; 

答案 1 :(得分:0)

这可能不是最有效的方法,但由于你只处理少于50个字符的字符串,所以这不是什么大问题。

这是伪代码:

Create a string containing all of the consonants as you listed above.
Prompt user for input
Store the input in a string
Use a loop to iterate through each character of the input string
    Use another loop to check each character against your string of consonants
        If it matches a consonant, increment your counter
Output the input string and count

如果您正在使用C ++字符串,则将在循环停止条件中使用字符串长度。 如果您正在使用C字符串,则将在循环停止条件中使用空字节。