【问题标题】:Strcpy and Strcat garbage charsStrcpy 和 Strcat 垃圾字符
【发布时间】:2016-03-14 21:15:50
【问题描述】:

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

name1 始终是 something.inp 类型,我希望 name 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");

我们将不胜感激。

【问题讨论】:

    标签: null character strcpy strcat


    【解决方案1】:

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

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

    【讨论】: