Преобразование каждого символа строки в число - 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')) ;