Создание массива целых чисел из argv в C

Это будет совершенно очевидно, я новичок в этом, но я прохожу курс CS50, и мне трудно с одним из моих заданий. Я думал, что это будет просто, но в моем синтаксисе есть что-то некорректное, что вызывает ошибки во время выполнения. Я пытаюсь создать массив, используя каждый символ из аргумента командной строки в качестве элементов для массива, но ничего, что я пробую, похоже, не работает. Вот кусок, который сбивает меня с толку:

#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


int main(int argc, string argv[])
{
    //make sure only 2 command line arguments entered
    if( argc != 2)
        {
        printf("Please input a keyword composing of letters only\n");
        return 1;
        }
     else
     {
         // declare variable "m" to designate the number of elements in the array "keyword"
        int m = strlen(argv[1]);
        //array declaration for "keyword" with "m" elements
        int keyword[m];
        //convert characters to integers
        keyword[m] = atoi(argv[1]);
        //iterate through characters in argv[1] in order to printf the elements in the array
        for (int j = 0; j < strlen(argv[1]); j++)
        printf("%i",keyword[j]);
     }
}

Итак, я знаю, что это действительно неправильно, но может ли кто-нибудь указать мне правильное направление?

1 ответ

Я не уверен, что правильно понял, что вы хотите сделать, но если вы хотите извлечь только из числа, указанного в параметре вашей программы, каждую фигуру, составляющую его, вы можете сделать это так

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


int main(int argc, char** argv)
{
    //make sure only 2 command line arguments entered
    if( argc != 2)
        {
        printf("Please input a keyword composing of letters only\n");
        return 1;
        }
     else
     {
         // declare variable "m" to designate the number of elements in the array "keyword"
        int m = strlen(argv[1]);
        //array declaration for "keyword" with "m" elements
        int keyword[m];
        //convert characters to integers
        //iterate through characters in argv[1] in order to printf the elements in the array
        for (int j = 0; j < strlen(argv[1]); j++){
          keyword[j] = argv[1][j] - '0';
          printf("%d\n",keyword[j]);
        }
     }
}
Другие вопросы по тегам