このエントリーをはてなブックマークに追加


指定した文字列に置換するCサンプルコード

指定した文字を指定した文字に置換するCサンプルコードを紹介します。


スポンサーリンク

関連記事

置換関数

本Cサンプルコードでは、strrep関数を作成しています。
strrepの仕様は以下の通りです。

  • 書式
    int strrep(char *src, char *before, char *after)
  • 戻り値
    関数の制限事項として、同じ文字数の置換しか行いません。
    置換前の文字数、置換後の文字数の文字列長が異なる場合は-1を返却します。
    置換ができた場合は置換した数を返却します。
  • 引数
    1つ目: 置換する文字列
    2つ目: 置換前文字列
    3つ目: 置換後文字列

置換関数のCサンプルコード

filestrrep.c (改行コードLF)

#include <stdio.h>
#include <string.h>

int strrep(char *src, char *before, char *after)
{
    char *p = NULL;
    int i = 0;

    if(strlen(before) != strlen(after)) { return -1; }

    p = strstr(src, before);
    while (p != NULL) {
        strncpy(p, after, strlen(after));
        p = p + strlen(after);
        i++;
        p = strstr(src, before);
    }

    return i;
}

int main(void)
{
    char s[] = "abcdefabcdefabcdefabcdef";
    int i;

    printf("BEFORE: %s\n", s);
    i = strrep(s, "abc", "ABC");
    if (i != -1) {
      printf("AFTER:  %s\n", s);
      printf("Number of Convert : %d\n", i);
    }

    return 0;
}

以下、コンパイルし実行した時の結果です。

$ gcc strrep.c -o strrep
$ ./strrep 
BEFORE: abcdefabcdefabcdefabcdef
AFTER:  ABCdefABCdefABCdefABCdef
Number of Convert : 4

以上、文字列置換のCサンプルコードでした。


スポンサーリンク

添付ファイル: filestrrep.c 717件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 21:01:00