Почему мой код не работает с компилятором 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

Похожие вопросы
Добавить ответ
Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Нажимая кнопку «Отправить», я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности этого сайта.