C中的字符串复制问题

时间:2016-02-28 04:35:24

标签: c

在下面的程序中我需要在不使用库函数的情况下反转字符串。但复制后的输出会打印出一些垃圾值。任何人都可以帮助我搞清楚吗? Please find the code and output

2 个答案:

答案 0 :(得分:2)

str1str2必须是char个数组,足以容纳字符串。 对于您的简单示例,char str1[128], str2[128];应该这样做。

您必须在循环之前将j初始化为str1的长度,并在循环之前将str2str2[j--] = '\0';终止:

for (j = 0; str1[j] != '\0'; j++) {
    continue;
}
str2[j--] = '\0';
for (i = 0; str1[i] != '\0'; i++, j--) {
    str2[j] = str1[i];
}

答案 1 :(得分:0)

str2应该被指定为空字符' \ 0'在for循环中的字符串反转之后。

for(j=strlen(str1);str1[i]!='\0';i++,j--)
        str2[j-1]=str1[i];
str2[i]='\0';