C ++如果有其他语句问题

时间:2013-11-22 20:26:01

标签: c++ if-statement syntax

我的代码包含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“

链接到printscreen: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;
}

对于这个糟糕的帖子感到抱歉!

2 个答案:

答案 0 :(得分:1)

if ( [...] ) - 你错过了括号。

此外,它是&&而不是and

答案 1 :(得分:1)

我认为你来自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,并且&&用于逻辑和

修改
当您说szOriginal时,您使用char作为isalpha(szOriginal) 当你说szWord = szOriginal.tolower();时作为一个对象 所以你需要研究那个