2012-05-10 8 views
-2

次のコードがあります。C言語のstrcat関数

#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

strcat()のドキュメントを読んでください:strcat(dest, src)と呼ばれています。

あなたのケースでは、str1には"/Hai"が含まれます。 unit"Hai/"にする場合は、strcat(unit, str1)に電話する必要があります。

2
strcat(str1,unit); 
//  ^dst ^src 

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

用途:

strcat(unit,str1); 

注:ほとんどのC関数は、最初の送信先と送信元を期待しています。