迭代字符串,并切换语句:C

迭代字符串,并切换语句:C,第1张

概述我正在写一些代码,并遇到了一些麻烦.我想编写一个函数来检查一个字符串是否有任何元音,并尝试通过一个带有switch语句的for循环来完成它.显然,它不起作用,并且由于某种原因永远不会返回真实. bool scanStr(string userInp) { for (int i = 0; i < userInp.size(); i++) { switch (userInp[i 我正在写一些代码,并遇到了一些麻烦.我想编写一个函数来检查一个字符串是否有任何元音,并尝试通过一个带有switch语句的for循环来完成它.显然,它不起作用,并且由于某种原因永远不会返回真实.

bool scanStr(string userInp) {    for (int i = 0; i < userInp.size(); i++) {        switch (userInp[i])        {        case 'a':        case 'A':        case 'e':        case 'E':        case 'i':        case 'I':        case 'o':        case 'O':        case 'u':        case 'U':        case 'y':        case 'Y':            return true;            break;        default:            return false;        }    }}

我试着测试一下程序是否实际上正在迭代字符串,它是,所以我不明白为什么在函数中,它总是返回false?

int main() {    string userInp;    string pigLatin;    cout << "Please enter a string to convert to pig Latin: " << endl;    cin >> userInp;    cout << endl;    // tests    for (int i = 0; i < userInp.size(); i++) { //checking if it actually iterates        cout << userInp[i];    }    cout << endl;    if (scanStr(userInp))        cout << "it has a vowel" << endl;    else        cout << "no vowel" << endl;    system("pause");    return 0;}

起初我认为这是因为即使在最后一个案例之后有一个中断语句,循环仍然继续,但我不完全确定这是否是原因.

有任何想法吗?

解决方法 问题是,如果任何字符不是元音,那么该函数会立即返回false.也使用const&amp ;. const允许你传递const字符串和引用节省一些时间,因为C不必复制整个字符串.

bool scanStr(const string & userInp) {    for (int i = 0; i < userInp.size(); i++) {        switch (userInp[i])        {        case 'a':        case 'A':        case 'e':        case 'E':        case 'i':        case 'I':        case 'o':        case 'O':        case 'u':        case 'U':        case 'y':        case 'Y':            return true;            break;        }    }    return false;}
总结

以上是内存溢出为你收集整理的迭代字符串,并切换语句:C全部内容,希望文章能够帮你解决迭代字符串,并切换语句:C所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222510.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存