Из командной строки я хочу написать цикл for, который будет определять, есть ли строка или char в массиве из аргументов командной строки.Как проверить массив для строки или char
Например, человек вводит 4.3, 5, 99, 0.1, w, 4, 2.43
. Правильно, когда петля обнаружит символ w, он выведет «Ошибка». То же самое происходит, если входной сигнал 4.3, 5, 99, 0.1, wasabi, 4, 2.43
; когда петля обнаруживает строку wasabi
, она выведет сообщение об ошибке. Дело в том, что я не могу понять, как написать цикл так, чтобы он обнаруживал ANY char или string, независимо от того, где он находится в массиве. Это то, что у меня есть до сих пор:
//check for a string or char in array
void checkForWord(int argc, char* argv[])
{
for (int i = 1; i < argc - 1; i++)
{
if()
{
//do something..
}
}
}
Любая помощь была бы очень признательна !!
Ну, все 'argv' записями являются строками по определению. Я думаю, вы на самом деле имеете в виду, может ли строка быть проанализирована как число. Предполагая, что вы хотите проанализировать их как 'float', тогда используйте что-то вроде [' strtof'] (http://linux.die.net/man/3/strtof) для каждой строки 'argv'. Возвращаемое значение и возвращаемые параметры 'strtof' могут сказать вам, было ли оно успешно преобразовано и, следовательно, действительный float или нет. – kaylum
Вы хотите, чтобы ваш ответ на C или C++? Они будут разными. Выберите тот или другой. – kfsone
C++ пожалуйста. Я пытаюсь получить цикл for, но с небольшой удачей. –