重命名C 中的char变量;在for循环中
我是C语言的初学者,我花了很多时间在我的问题上,但我无法找到解决方案 我想使用filename_1作为C中for循环中的前缀来更新文件filename_2(char)的名称 我不想修改文件名_1的名称,因为它被其他函数使用 这是我的代码和我正在寻找的东西重命名C 中的char变量;在for循环中,c,char,C,Char,我是C语言的初学者,我花了很多时间在我的问题上,但我无法找到解决方案 我想使用filename_1作为C中for循环中的前缀来更新文件filename_2(char)的名称 我不想修改文件名_1的名称,因为它被其他函数使用 这是我的代码和我正在寻找的东西 #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int j; char filename_1[
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int j;
char filename_1[40]="test";
char nummbr[40];
char *filename_2 = NULL;
filename_2 = filename_1;
for( j = 0; j<12; j++)
{
sprintf(nummbr, "%d", j); // transform int into char --> for concatenation
if (j < 21){
strcat(filename_2, "_00");
strcat(filename_2, nummbr);
}else{
strcat(filename_2, "_0");
strcat(filename_2, nummbr);
}
/* do things with the file */
printf("member: %i %s\n",j, filename_2);
}
return 0;
}
我想要:
member: 0 test_000
member: 1 test_001
...
member: 20 test_020
在循环的每次迭代中,您都会一直附加到
filename_2
(指向filename_1
),而不会重置,因此每次迭代只会附加到上一个循环的文本
首先,将filename_2
设置为数组而不是指针。然后通过使用strcpy将filename\u 1
复制到filename\u 2
的开头,开始每次迭代
char filename_2[40];
for( j = 0; j<12; j++)
{
strcpy(filename_2, filename_1);
...
charfilename_2[40];
for(j=0;jif的\u pr\u fc
从哪里来?你是对的,这是一个输入错误。非常感谢!它起了作用。关于if语句,你是对的。
char filename_2[40];
for( j = 0; j<12; j++)
{
strcpy(filename_2, filename_1);
...
if (j < 21){
if (j < 10){