【问题标题】:C++ If Else statement ProblemsC++ If Else 语句问题
【发布时间】:2013-12-07 20:46:15
【问题描述】:

我的代码包含一个 If Else 语句。我希望它在两件事上验证用户输入放入脚本的字符串:

  • 字符串长度必须大于0
  • 字符串必须由字母字符组成

以下是我的代码,我认为错误与字符串代码的长度有关。

编辑前:

cout << "Your word: " << szOriginal << "\n";
if szOriginal.length() > 0 and (isalpha(szOriginal))
{
    szWord = szOriginal.tolower();
    cout << szWord << "\n";
}
else
{
    cout << "Please enter a valid word." << endl;
}

对不起,Dev-C++ 产生的错误是

“szOriginal”之前的预期'('

打印屏幕链接:http://gyazo.com/b3f43928072e9c2a5a8a712a9030364d

使用变量声明等编辑后:

#include <cstdio>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;

int main(int nNumberofArgs, char* pszArgs[])
{
    string original;
    cout << "Welcome to the English to Pig Latin translator!\n";
    cout << "Type a word you wish to translate:\n";
    cin >> original;
    cout << "Your word: " << original << "\n";
    if (original.length() > 0 && (isalpha(original)) ) 
    {
        word = original.tolower();
        cout << Word << "\n";
    }
    else
    {
        cout << "Please enter a valid word." << endl;
    }

    system("PAUSE");
    return 0;
}

很抱歉这篇糟糕的帖子!

【问题讨论】:

  • 生成SSCCE 并发布完整错误。
  • 什么错误?你真的错过了if 子句周围的( ) 吗?
  • 缺少括号( )
  • 另外,如果没有看到声明,我会假设您的“字符串”变量实际上是 char [] 基于名称。这也是错误的,对于具有方法的 C++ 字符串,您需要 std::string(但没有.tolower()
  • 另请参阅如何使用isAlpha -- 它不适用于字符串。

标签: c++ if-statement syntax


【解决方案1】:

if ( [...] ) - 你缺少括号。

另外,它是&amp;&amp; 而不是and

【讨论】:

    【解决方案2】:

    我认为你来自 python 背景

    cout << "Your word: " << szOriginal << "\n";
    if (szOriginal.length() > 0 && (isalpha(szOriginal)) )
    {
        szWord = szOriginal.tolower();
        cout << szWord << "\n";
    }
    else
    {
        cout << "Please enter a valid word." << endl;
    }
    

    您需要在if 条件周围使用( ),并使用&amp;&amp; 进行逻辑与

    编辑
    当您说isalpha(szOriginal) 时,您正在使用szOriginal 作为char 当你说szWord = szOriginal.tolower();时作为一个对象 所以你也需要调查一下

    【讨论】: