gpt4 book ai didi

在 C 循环中更改 char* 字符串

转载 作者:行者123 更新时间:2023-12-02 06:27:30 25 4
gpt4 key购买 nike

我正在尝试更改循环中的字符串,以便能够使用不断变化的变量保存我的图像。代码片段如下:

for (frames=1; frames<=10; frames++)
{
char* Filename = "NEWIMAGE";
int Save_Img = is_SaveImageMemEx (hCam, Filename, pMem, memID,
IS_IMG_PNG, 100);
printf("Status Save %d\n",Save_Img);
}

我想做的是在 Filename 中放置一个随循环计数器变化的变量,这样我保存的文件在每次迭代时都会更改名称。

任何帮助都会很棒。

最佳答案

使用 sprintf 创建一个文件名字符串,并使用 %d 格式转换说明符作为 int:

char filename[32];
sprintf(filename, "NEWIMAGE-%d", frames);

sprintf 的工作方式与 printf 类似,但“打印”到字符串而不是标准输出。

如果您将 frames 声明为 unsigned int,请使用 %u。如果它是 size_t 使用 %zu。有关详细信息,请参阅友好的 printf 手册页,它会告诉您如何用零填充数字。

确保您写入的字符数组足够大以容纳最长的输出加上一个额外的'\0' 字符。在您的特定情况下,NEWIMAGE-10 + 1 表示 11 + 1 = 12 个字符就足够了,但 32 个字符在一段时间内是面向 future 的。

如果你想像专业人士一样编程,请查看 snprintfasnprintf 函数,它们分别可以限制或分配写入的内存。

关于在 C 循环中更改 char* 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com