c++ - 是否有返回写入缓冲区的字符数的 itoa 版本?
问题描述
我目前正在打电话_itoa_s
,然后打电话strlen
来弄清楚写了多少个字符。是否有类似的方法itoa
将新指针返回到缓冲区的开头,或者返回写入了多少个字符?我无法在标准库中找到提供此功能的方法。
编辑:
这适用于一些性能敏感的代码。我正在使用itoa
它是因为它是我测试使用标准库进行字符串转换的最快方法。
解决方案
您可以使用该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;
}
推荐阅读
- php - 如何使用 PHP 和 Python 将命令发送到连接到 RPi 的 USB 继电器?
- vue.js - 如何将 vue.js 与 gapi 连接起来
- c - 文档中函数参数中的数字?
- cognos - 如何在不同的操作系统上分发 Cognos 组件?
- javascript - 在 React 中循环数据时如何向网格系统添加断点
- google-oauth - 为 GCP 构建 OAuth 令牌的最佳方式是什么
- java - 是否可以在 Firebase Firestore 文档中找到字段数。我如何在 Android Studio 中做到这一点
- session - 用于在 golang 中关闭会话的 Softlayer API?
- typescript - Typescript mixins 不适用于父级的泛型
- libharu - 使用 libharu 的 C++ Windows - HPDF_Doc 未定义