Strcpy 和 Strcat 垃圾字符

Strcpy and Strcat garbage chars

我有 2 个字符串:'name1' 和 'name2'。

name1 始终为 something.inp 类型,我希望名称 2 为 something.pts 类型。

所以如果 name1 是 'data.inp',我希望 name2 是 'data.pts'。 我尝试执行以下操作,但没有成功,因为当我打印 name2 时,我在 'pts'.

之前得到了一些垃圾值
name1=(char*)malloc((strlen(argv[2])+1)*sizeof(char));

name2=(char*)malloc(1+(strlen(name1))*sizeof(char));

strcpy(name1, argv[2]);



strncpy(name2, name1, strlen(name1)-3);


strcat(name2, "pts");

将不胜感激。

您可以替换最后一个字符:

name1 = argv[2];
name2 = name1;
name2[name2.length()-3] = 'p';
name2[name2.length()-2] = 't';
name2[name2.length()-1] = 's';