【C言語】文字列を変数に代入する設定

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エンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!