Как преобразовать длинную строку в строку?

Я создаю программу, которая принимает числовой ввод от пользователя как long long, а затем есть некоторая математика, связанная с отдельными цифрами. Я думаю, что лучший способ сделать это - преобразовать long long в строку, а затем перебрать различные части.

Я пробовал использовать atoi но это не сработало, и теперь я играю с sprintf следующее...

if (count == 13 || count == 15 || count == 16)
    {
        char str_number[count];
        // Converting long card_number to a string (array of chars)
        sprintf(str_number, "%lld", card_number);
        printf("card number is: %s\n");
        return 0;
    }

Это тоже не работает.

Кто-нибудь может направить меня на правильный путь, пожалуйста?

1 ответ

Решение

В

printf("card number is: %s\n");

вы не указали str_number в аргументе, поведение не определено, выполните

printf("card number is: %s\n", str_number);

Обратите внимание, если ваш long long находятся на 64b, длина строки 21, если достаточно, потому что более длинная строка предназначена для -4611686018427387903 требуется на 20 символов больше последнего нулевого символа.


Из вашего замечания:

Как лучше всего преобразовать длинную строку в строку?

не существует стандартного lltoa, поэтому семейство sprintf - это правильный путь, обратите внимание, если вы боитесь писать из массива, вы можете использовать snprintf

Другие вопросы по тегам