-2

我有以下代码。

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

int main()
{
    char str1[1000]="/";
    char unit[1000]="Hai";
    strcat(str1,unit);
    printf("\nvalue of unit: %s\n", unit);
    return 0;
}

strcat应该附加"/""Hai". 所以预期的输出printf是“单位价值:Hai/”,但我得到的输出是“单位价值:Hai”

知道为什么会这样吗?

4

2 回答 2

4

只需阅读 的文档strcat():它会告诉您它是用strcat(dest, src).

所以在你的情况下,str1将包含"/Hai". 如果你想unit成为"Hai/",你应该打电话strcat(unit, str1)

于 2012-05-10T13:26:34.203 回答
2
strcat(str1,unit);
//     ^dst  ^src

printf("\nvalue of unit: %s\n", unit);
//                              ^src

采用:

strcat(unit,str1);

注意:大多数 C 函数首先需要目标,然后是源。

于 2012-05-10T13:26:37.783 回答