C++ C++;cout将同一字符串打印几次

C++ C++;cout将同一字符串打印几次,c++,if-statement,C++,If Statement,我的代码有一个if-else语句,它验证输入是否是一个充满字母字符的字符串 代码可以工作,但是不能它会打印五次,因为“hello”有五个字符长。对于字符串中的每个字符,for循环运行一次。它打印五次,因为“hello”有五个字符长。对于字符串中的每个字符,for循环运行一次。您的代码不正确。它检查每个字符,而不是整个字符串 将其更改为: bool alphaString = true; for (std::string::iterator it=original.begin(); it!=ori

我的代码有一个if-else语句,它验证输入是否是一个充满字母字符的字符串


代码可以工作,但是
不能它会打印五次,因为“hello”有五个字符长。对于字符串中的每个字符,for循环运行一次。

它打印五次,因为“hello”有五个字符长。对于字符串中的每个字符,for循环运行一次。

您的代码不正确。它检查每个字符,而不是整个字符串

将其更改为:

bool alphaString = true;
for (std::string::iterator it=original.begin(); it!=original.end(); ++it)
    {
        if (! std::isalpha(*it,loc) )
        {
            std::cout << "Please enter a valid word." << std::endl;
            alphaString = false;
            break;
        }
    }
if ( alphaString ) {  
  std::transform(original.begin(), original.end(), original.begin(), ::tolower);
  cout << original << "\n";
}
bool alphaString=true;
对于(std::string::iterator it=original.begin();it!=original.end();++it)
{
如果(!std::isalpha(*it,loc))
{

std::cout您的代码不正确。它检查每个字符,而不是整个字符串

将其更改为:

bool alphaString = true;
for (std::string::iterator it=original.begin(); it!=original.end(); ++it)
    {
        if (! std::isalpha(*it,loc) )
        {
            std::cout << "Please enter a valid word." << std::endl;
            alphaString = false;
            break;
        }
    }
if ( alphaString ) {  
  std::transform(original.begin(), original.end(), original.begin(), ::tolower);
  cout << original << "\n";
}
bool alphaString=true;
对于(std::string::iterator it=original.begin();it!=original.end();++it)
{
如果(!std::isalpha(*it,loc))
{

std::cout啊,好吧!涉及for循环的原因是因为这是我知道如何执行代码的
isalpha
部分的唯一示例。如果我在没有for循环的情况下执行,只使用If/else语句并使用
…&&isalpha(原始))
Dev-C++编译器不喜欢它。如果你想知道整个字符串是字母数字还是类似的,看看这个答案啊,好吧!涉及for循环的原因是因为这是我知道如何执行
isalpha
部分代码的唯一例子。如果我没有for循环,只是使用If/else statement和used
…&&isalpha(original))
Dev-C++编译器不喜欢它。如果要查看整个字符串是字母数字还是类似的,请参阅此答案