Задание заключается в что нужно ввести строку и определить является ли она целым числом Вот фрагмент кода #include #include #include using namespace std; int main(){ setlocale(LC_ALL,"Russian"); string(c); int a=0; cout<<"Введи строку"<>c; c.c_str() ; while(a<strlen(c.c_str())) if((c[a]=1)||(c[a]=2)||(c[a]=3)||(c[a]=4)||(c[a]=5)||(c[a]=6)||(c[a]=7)||(c[a]=8)||(c[a]=9)||(c[a]=0))a++;
}
return 0;
} Суть в том, что выражения с массивом (через функцию c_str() не воспринимаются К примеру если я введу строку из одного символа, к примеру, 1(пусть как в программе массивом будет c) if(c[0]==1){a=c[0]; cout<<a; }на консоль ничего не выводится Может как-нибудь переприсвоить все массиву типа int? Буду благодарен если допишите код p.s перепробовал кучу алгоритмов никак не получается нормально определить int
Строка является целым числом если она состоит из цифр от 0 до 9, так что даже число 1212423232438437438749749747324732479324732874328423979878327483278 есть целое. char mas[255]; \\ Допустим завел массив для строки cin >> mas; \\ ввел в этот массив строку символов bool yesint = true; char *u = mas; // указатель на массив // пока указатель не на ноль while(*u != 0) { // если символ не цифра, то это не целое число и выйти if(*u < '0' || *u > '9') { yesint=false; break; } u++; // следующий символ берем }
Спасибо огромное, а как для безразмерного массива т. е для любого вводимого кол-ва символов?
kaiu
Высший разум
(115765)
Ты можешь ввести гугол чисел?
https://ru.wikipedia.org/wiki/Гугол
На все есть ограничение, я уж думаю тебе даже 255 чисел хватит, а нет так пиши mas[65025] если тоже не устанешь вводить, а так есть типы и string есть и специальные функции проверки на целое, но если у вас задание согласно обучения, то делайте как вас дают.
Последний вопрос Почему при переводе строки в массив выражения (| |,&&) в инструкциях не работают ?(это тип автоматом отключили в силу того что могу ввести не цифру?)
Я Красавчег
Мыслитель
(7353)
Символы - тоже числа. Я знаю что "0" - 48, "1" - 49, "2" - 50 и т. д.
Отсюда выводы: нужно что бы число было в этих пределах
Вот фрагмент кода
#include
#include
#include
using namespace std;
int main(){
setlocale(LC_ALL,"Russian");
string(c);
int a=0;
cout<<"Введи строку"<>c;
c.c_str() ;
while(a<strlen(c.c_str()))
if((c[a]=1)||(c[a]=2)||(c[a]=3)||(c[a]=4)||(c[a]=5)||(c[a]=6)||(c[a]=7)||(c[a]=8)||(c[a]=9)||(c[a]=0))a++;
}
return 0;
}
Суть в том, что выражения с массивом (через функцию c_str() не воспринимаются
К примеру если я введу строку из одного символа, к примеру, 1(пусть как в программе массивом будет c)
if(c[0]==1){a=c[0];
cout<<a;
}на консоль ничего не выводится
Может как-нибудь переприсвоить все массиву типа int?
Буду благодарен если допишите код
p.s перепробовал кучу алгоритмов никак не получается нормально определить int