Преобразование каждого символа строки в число - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, Пытаюсь сделать программу которая принимает аргумент строки, но затем эту строку (массив символов) нужно перебрать посимвольно и каждый символ char преобразовать в int и вывести на печать в новой строке (или произвести с ним арифмет. действия).
#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;
 
}
Но данный код не работает, при компиляции жалуется, что в строке int x= (int)atoi(str[i]); не хватает символа & перед str[i]. Если вставить этот символ - программа компилируется, но результат выдает не тот который требуется. С этим символом результат таков: вводим 123; вывод 123 23 3 А необходимо вывод: 1 2 3 Подскажите, пожалуйста в чем ошибка и как грамотно написать алгоритм?

Решение задачи: «Преобразование каждого символа строки в число»

textual
Листинг программы
for(int i = 0; str[i] != '\0'; i++)
        printf("%i\n", (str[i]-'0')) ;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы