Как преобразовать длинную строку в строку?
Я создаю программу, которая принимает числовой ввод от пользователя как 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