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

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

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

Здравствуйте, Пытаюсь сделать программу которая принимает аргумент строки, но затем эту строку (массив символов) нужно перебрать посимвольно и каждый символ char преобразовать в int и вывести на печать в новой строке (или произвести с ним арифмет. действия).
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (int argc, char* argv[])
  5.  
  6. {
  7. if (argc!=2 && argc!=3)
  8. {
  9. printf("Wrong\n");
  10. return 1;
  11. }
  12. char* str=argv[1];
  13.  
  14. for(int i=0;; i=i+1)
  15. {
  16. if(str[i]=='\0')
  17. {
  18. break;
  19. }
  20. int x= (int)atoi(str[i]);
  21.  
  22. printf("%i\n",x) ;
  23. }
  24.  
  25. return 0;
  26. }
Но данный код не работает, при компиляции жалуется, что в строке int x= (int)atoi(str[i]); не хватает символа & перед str[i]. Если вставить этот символ - программа компилируется, но результат выдает не тот который требуется. С этим символом результат таков: вводим 123; вывод 123 23 3 А необходимо вывод: 1 2 3 Подскажите, пожалуйста в чем ошибка и как грамотно написать алгоритм?

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

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

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы