-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 に答える