C言語は初期化時のときのみ、文字列の変数に値「=」を入れるルールとなっているようです。
例えば、変数に文字列を入れた後、別の文字列を新たに入れたいときは「strcpy」を使用します。
目次
C言語における文字列のしくみ
文字列を記述する際は””でくくります。
また、文字列を格納する変数のコマンドを作成する際は以下のように設定します。
char s[10];
sは変数名、[10]は文字の長さにNULL文字を一つ分入れた数値となります。
なので、[10]を設定した際は、9文字の文字列+NULL(\0)となります。
設定例
実際に書かないとわかんないんで、プログラムを書いてみました。
# vim test.c
#include <stdio.h>
#include <string.h>
main()
{
char s[10] = "Hello";
printf("%s\n", s);
strcpy(s, "Good bye");
printf("%s\n", s);
}
コンパイル実施
# gcc test.c -o test
プログラム実行
# ./test Hello Good bye
ためしに文字列の範囲を超えた設定をすると以下のようにエラーを吐きます。
# ./test Hello Good byekkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk セグメンテーション違反です (コアダンプ)
こんな感じです。
今日もなんとなく、わかった気がする自分であります。
それでは!
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

コメント