Project_OKI’s diary

エンジニアの勉強ブログ

C言語基礎知識33(C言語で変数へ文字列を追加する方法)

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

 

 

関連記事

過去の記事:

知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - 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

C言語基礎知識10(extern宣言) - Project_OKI’s diary

C言語基礎知識11(#define) - Project_OKI’s diary

 

組み込みC言語