为什么我的代码不能使用G ++编译器?

时间:2014-03-15 03:38:47

标签: c++ g++

我在Visual Studio C ++中编写了代码并将其转移到G ++编译器。虽然没有编译错误,但是当我执行它时,我在Visual Studio上工作的代码现在无法在新编译器上运行:问题是我的程序在没有编译时报告格式错误。

以下是关注的功能:

void checkFormat(char *token, bool &checkNum, bool &checkString)
{
    int nums = 0; //tracks # of digits in the token
    int chars = 0; //tracks # of letters in the token

    for(int i = 0; i < strlen(token); i++) //checks for formatting (must be either digits or letters)
    {
        if(isalpha(token[i]))
            chars++;
        else if(isdigit(token[i]))
            nums++;
        else
        {
            i = strlen(token);
            checkNum = false;
            checkString = false;
        }

        if (i == strlen(token) - 1)
        {
            if (nums > chars && chars == 0)
                checkNum = true;
            else if (chars > nums && nums == 0)
                checkString = true;
            else
            {
                checkNum = false;
                checkString = false;
            }
        }
    }
}

当我在这一行上使用这个语句时:“SAL 210 30”由于某种原因它适用于SAL,它适用于210,但它在30上失败。对于30,checkNum保持为false而不是true。有什么想法吗?

0 个答案:

没有答案