我有一个C ++程序,可以找到并删除给定字符串中的任何元音。唯一的问题是,它不起作用,我找不到原因。我必须使用 2个函数来删除所有元音,而另一个函数决定一个字符是否是元音,所有这些都应该在循环中运行。
这是我的代码:
var phantom = require('phantom');
var rl = require('readline-sync');
var Spooky = require('spooky');
// Go to login page
spooky.start(url);
// Generate an image of the captcha
spooky.then(function () {
this.capture('captcha.png');
});
// Fill in login form
spooky.then([{
captcha: new Captcha()
}, function () {
this.fill('form#login-form', {
'username': 'username',
'password': 'password',
'recaptcha_response_field' : captcha.phrase
});
}]);
spooky.wait(5000, function() {
this.capture('afterlogin.png');
});
spooky.run();
function Captcha() {
return {
phrase: ask("Enter Captcha Phrase: ")
}
}
function ask (msg, options){
return rl.question(msg, options)
}
我之前有过它的工作,但现在它将无法正常运行并擦除所有元音。 任何建议或提示都会很棒! 提前谢谢!
答案 0 :(得分:0)
好吧,我很乖,心情很好,所以在这里。
#include <iostream>
#include <string>
bool isVowel(char ch);
void removeVowels(std::string& str);
int main()
{
std::string Text = "";
std::cout << "Please enter a string, what ever you like: ";
std::getline(std::cin, Text);
removeVowels(Text);
std::cout << Text << std::endl;
return 0;
}
bool isVowel(char ch)
{
switch (ch)
{
case 'a':
case 'A':
case 'e':
case 'E':
case 'i':
case 'I':
case 'o':
case 'O':
case 'u':
case 'U':
return true;
default:
return false;
}
}
void removeVowels(std::string& str)
{
int len = str.length();
int index = 0;
while (index < len)
{
if (isVowel(str[index]))
{
str = str.substr(0, index) + str.substr(index + 1, str.length());
len = str.length();
}
else index++;
}
}
您遇到的问题是
我之前有过它的工作,但现在它将无法正常运行并擦除所有元音。任何建议或提示都会很棒!提前谢谢!
在for循环中不要使用unsigned int,只需使用int!
一般来说,你不应该像你在这里做的那样直接回归真或假,有各种各样的原因,我相信你的教授会覆盖它们。但是对于所有意图和目的,声明一个布尔变量(bool vowel = true)是一个例子,你可以在你的回归中使用它。
因为你自己使用if语句没有循环结构(甚至还有一个你仍然有问题)它只执行一次,这意味着它最多只能找到一个元音。你也返回true,但你没有提供处理它的逻辑。
例如,当它返回true时你想要发生什么,当它返回false时你想要它做什么?
你正在使用cin,它不会,也不会使用倍数单词(空格)使用getline(cin,input); (输入是您的输入变量)
我实际上误读了你的代码,我在这里更改了我的评论以澄清。你在函数中说要删除元音s.erase(i,1);基本上你正在做的是从你的字符串中的位置0开始向前迭代1个位置并删除起点和终点(起点为0结束点为1)。
记住第一个位置是0而不是1。
如果您对我提供的代码有疑问,请告诉我,我会向您解释!