C言語で変数へ文字列を追加
この記事では、C言語で文字列を追加する方法について記載する。
1. 目的
・C言語で文字列を変数に追加する方法について理解する。
目次
2. 文字列を変数に格納する方法
2.1文字列を変数に格納する関数
・strcat関数
・必要ヘッダファイル:string.h
2.2 使用方法:strcpy 関数
(1) strcat関数を実行し、変数strに文字列を追加する。
strcat(str,"文字列");
2.3 プログラム作成(strcat関数で文字列を追加:1次元配列)
配列strにTESTという文字列を格納して、それに文字列という言葉を追加するプログラム。
#include <stdio.h> #include <string.h> int main(void){ char str[10]="TEST"; strcat(str,"文字列"); ///< 文字列を足す。 printf("%s\n",str); return 0; }
結果:https://paiza.io/projects/2YciDBQc6-YZAfI3iCXEPw?language=c
※strの配列は、文字列の長さを格納するだけの十分な容量を持っている必要がある。
2.4 プログラム作成(strcat関数でコピー:2次元配列)
2次元配列strにAz,Bend,Cedという文字列を格納して、それに文字列という言葉を追加するプログラム。
#include <stdio.h> #include <string.h> int main(void){ char str[1000][1000] = {"Az","Bend","Ced"}; for(int i=0;i<3;i++){ strcat(str[i],"文字列"); ///< 文字列(test)を足す。 printf("%s\n",str[i]); } return 0; }
実行結果:https://paiza.io/projects/5W--o8Fe6rWsYJRigWT_5w?language=c
3. 文字列を変数に格納する方法(前側に文字列を追加)
strcatは、後ろ側に追加する関数である。前側に文字列を追加する場合には使用できない。
その為、前側に文字列を追加する場合には、文字列をずらして、前に追加する。
3.1 プログラム作成(文字列を前側に追加)
TESTの前に文字列を追加するプログラム
#include <stdio.h> #include <string.h> int main(void) { char str[100] = "TEST"; char temp[100] = "文字列"; int i, j; /// 追加する文字列の長さを取得 int len_temp = strlen(temp); ///<tempのサイズ取得 int len_str = strlen(str); ///<strのサイズ取得 /// 既存の文字列を後ろにずらす for (i = len_str; i >= 0; i--) { ///<文字列のサイズ分ループ str[i + len_temp] = str[i]; ///< temp文字列分うしろにずらす printf("%c\n",str[i]); } /// 追加する文字列を前側にコピー for (j = 0; j < len_temp; j++) { ///tempのサイズ分ループ str[j] = temp[j]; } /// str文字列を出力 printf("%s\n", str); return 0; }
結果:https://paiza.io/projects/xCvnezGzQuVMNArC-B74Cw?language=c
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・C言語基礎知識6(関数) - Project_OKI’s diary
・C言語基礎知識7(構造体1) - Project_OKI’s diary
・C言語基礎知識8(enum:列挙型) - Project_OKI’s diary
・C言語基礎知識9(typedef) - Project_OKI’s diary