首页 > 解决方案 > 是否有返回写入缓冲区的字符数的 itoa 版本?

问题描述

我目前正在打电话_itoa_s,然后打电话strlen来弄清楚写了多少个字符。是否有类似的方法itoa将新指针返回到缓冲区的开头,或者返回写入了多少个字符?我无法在标准库中找到提供此功能的方法。

编辑:

这适用于一些性能敏感的代码。我正在使用itoa它是因为它是我测试使用标准库进行字符串转换的最快方法。

标签: c++c

解决方案


您可以使用该sprintf()函数,它返回写入缓冲区的字符数(不包括nul终止符,顺便说一句):

#include <stdio.h>

int main()
{
    int n;
    char str[64];
    printf("Enter number: ");
    scanf("%d", &n);
    int nc = sprintf(str, "%d", n);
    printf("Characters written = %d\n", nc);
    return 0;
}

推荐阅读