Преобразование каждого символа строки в число - C (СИ)
Формулировка задачи:
Здравствуйте, Пытаюсь сделать программу которая принимает аргумент строки, но затем эту строку (массив символов) нужно перебрать посимвольно и каждый символ char преобразовать в int и вывести на печать в новой строке (или произвести с ним арифмет. действия).
Но данный код не работает, при компиляции жалуется, что в строке int x= (int)atoi(str[i]); не хватает символа & перед str[i].
Если вставить этот символ - программа компилируется, но результат выдает не тот который требуется.
С этим символом результат таков:
вводим 123;
вывод
123
23
3
А необходимо вывод:
1
2
3
Подскажите, пожалуйста в чем ошибка и как грамотно написать алгоритм?
#include <stdio.h> #include <stdlib.h> int main (int argc, char* argv[]) { if (argc!=2 && argc!=3) { printf("Wrong\n"); return 1; } char* str=argv[1]; for(int i=0;; i=i+1) { if(str[i]=='\0') { break; } int x= (int)atoi(str[i]); printf("%i\n",x) ; } return 0; }
Решение задачи: «Преобразование каждого символа строки в число»
textual
Листинг программы
for(int i = 0; str[i] != '\0'; i++) printf("%i\n", (str[i]-'0')) ;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д