首页 > 解决方案 > 如何将 long long 转换为字符串?

问题描述

我正在创建一个程序,该程序将用户的数字输入作为 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;
    }

这也不起作用。

任何人都可以让我走上正确的轨道吗?

标签: cstringlong-longasprintf

解决方案


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


推荐阅读