如何在字符串末尾添加字符

Sai*_*sin 3 c

  我有一个文件复制程序,从一个文件,并粘贴在另一个文件指针.但是,不是从用户输入获取targetname,而是想在输入文件名的末尾添加一个'1'并保存.所以,我试过这样的事......

       .... header & inits ....
       fp=fopen(argv[1],"r");
       fq=fopen(argv[1].'1',"w");
       .... file copy code ....
Run Code Online (Sandbox Code Playgroud)

是的,它似乎很愚蠢,但我是初学者,需要一些帮助,请尽快回复.感谢:D

PS想要它在纯C中.我相信点运算符可以在C++中工作..或至少我认为..嗯

还有一件事,我已经知道了strcat函数..如果我使用它,那么我将不得不在数组中定义大小......嗯.有没有办法像fopen一样(argv [1] +"extra","w")

BLU*_*IXY 6

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

char* stradd(const char* a, const char* b){
    size_t len = strlen(a) + strlen(b);
    char *ret = (char*)malloc(len * sizeof(char) + 1);
    *ret = '\0';
    return strcat(strcat(ret, a) ,b);
}

int main(int argc, char *argv[]){

    char *str = stradd(argv[1], "extra");

    printf("%s\n", str);

    free(str);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)