gpt4 book ai didi

C 使用 sprintf 将数组转换为字符串

转载 作者:行者123 更新时间:2023-11-30 17:08:31 25 4
gpt4 key购买 nike

我已使用 fscanf 将“ABCDEFGHIJK”扫描为字符数组[26]。然后我使用“for”将“ABCDEFGHIJK”放入另一个数组[11]。现在我需要访问“ABCDEFGHIJK.mp4”数组[15],以便将该文件名输入到重命名函数中。

除了 printf、scanf、for 和 while 之外,我对 C 编程了解不多。

    sprintf(filename, "%c%c%c%c%c%c%c%c%c%c%c.mp4", codigo[0], codigo[1], codigo[2], codigo[3], codigo[4], codigo[5], codigo[6], codigo[7], codigo[8], codigo[9], codigo[10]);

上面的代码似乎可以工作,但我想知道是否有更简单的方法(特别是对于更大的数组)?

澄清:我有一个 txt 文件,其格式包含不带扩展名的文件名和人类文件名。我正在尝试制作一个程序,将这些文件重命名为正确的名称,因为它们来自失败的备份。

编辑:这是完整的程序。我重命名了变量以使其更有意义,因此“codigo”现在是“idcode”。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
int i, j, k;

char value1[26], value2[70], idcode[11], filename[16], fullname[64], filenamestring[16], fullnamestring[64];

// Opening file.

FILE *nomes;
nomes = fopen("/Users/EA/Desktop/Songs/backup.txt", "rt");
if(nomes == NULL)
{
printf("Erro ao abrir backup.txt");
exit(1);
}

// Skipping beggining of file until first value.

for(i=0; i<10; i++)
{
fscanf(nomes, "%*s");
}

// Reading first value, and repetition.

while(fscanf(nomes, "%s", value1) == 1)
{
j = k = 0;

// Extracting idcode from value1.

for(i=7; i<18; i++)
{
idcode[j] = value1[i];
j++;
}

// Filling the complete filename.

sprintf(filename, "%.*s.mp4", 11, idcode);

// Reading second value, the "human" filename.

fscanf(nomes, "\n%[^\n]", value2);
for(i=6; i<70; i++)
{
fullname[k] = value2[i];
k++;
}

// Transforming filenames into strings for rename function.

strncpy(filenamestring, filename, 16);
strncpy(fullnamestring, fullname, 64);

// Renaming the files.

rename(filename, fullname);

// Skipping useless data before the next cycle.

for(i=0; i<9; i++)
{
fscanf(nomes, "%*s");
}
}

// Closing file and ending program.

fclose(nomes);
return(0);
}

最佳答案

看起来您有一个 char 数组。您可以简单地执行以下操作:

sprintf(filename, "%.*s.mp4", 11, codigo)

您可以在 this 中阅读有关 %.*s 说明符的更多信息。问题。

关于C 使用 sprintf 将数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33609205/

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