Cプログラミングで - 初心者ガイドの章19、例2、プログラムstrcatは()関数:Cプログラミング、絶対Beginner`sガイド - 第19章、strcatは()関数のコードdoesnの `tの仕事を適切
#include <stdio.h>
#include <string.h>
int main()
{
char city[15];
char st[3];
char fullLocation[18];
puts("What town do you live in? ");
gets(city);
puts("What state do you live in? (2-letter abbreviation)");
gets(st);
strcat (fullLocation, city);
strcat (fullLocation, ", ");
strcat (fullLocation, st);
puts("\nYou live in ");
puts(fullLocation);
return 0;
}
私はこのプログラムをコンパイルすると、それはこれを表示します。コンソールウィンドウで
compiler`s出力:
任意のアイデアやexplanaをなぜそれらの奇妙な文字を表示するのですか?
でヌル文字を探しているのないコピーは空の文字列で 'fullLocation'を初期化してみstrcpyのと最初 STRCATを置き換えることができます。 – s7amuser
Cでは、 'fullLocation'はあなたが初期化していないのでガベージです。 strcatはヌルターミネータで始まる文字列に文字をコピーします。しかしそこにはヌルターミネーターはありません。 'fullLocation'を長さゼロの文字列にするには、最初の文字を0に設定します。' fullLocation [0] = 0; 'または宣言で{0}に初期化します。 –
絶対初心者が書いたガイドからCを学ぶべきではないと思います。経験豊かなプログラマーが書いたテキストを見つけなければなりません。 – rici