如何将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;
    }

这也不起作用。

有人可以让我走上正确的路吗?

解决方法

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

您错过了在参数中提供 str_number 的功能,行为未定义,可以

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

请注意,如果您的long long在64b上,则使用大小为21的字符串是否足够,因为较长的字符串用于-4611686018427387903,最终空字符需要多20个字符。


根据您的评论:

将long转换为字符串的最佳方法是什么?

没有标准的 lltoa ,所以 sprintf 系列是正确的方法,请注意,如果您担心写出数组,可以使用 snprintf

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...