文字列/文字列置換のCサンプルコード
の編集
Top
/
文字列
/
文字列置換のCサンプルコード
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * 指定した文字列に置換するCサンプルコード [#abb380dc] 指定した文字を指定した文字に置換するCサンプルコードを紹介します。~ #contents #htmlinsertpcsp(c-top.html,c-sp.html) * 関連記事 [#j78c3918] -[[文字列をコピーする・strcpy>文字列/文字列をコピーする・strcpy]] -[[文字列内の文字を1つずつ表示する>文字列/文字列内の文字を1つずつ表示する]] -[[指定した区切り文字で文字列を分割する・strtok>文字列/指定した区切り文字で文字列を分割する・strtok]] -[[文字列置換のCサンプルコード>文字列/文字列置換のCサンプルコード]] -[[小文字を大文字に変換する・toupper>文字列/小文字を大文字に変換する・toupper]] -[[大文字を小文字に変換する・tolower>文字列/大文字を小文字に変換する・tolower]] * 置換関数 [#t6acb6c5] 本Cサンプルコードでは、strrep関数を作成しています。~ strrepの仕様は以下の通りです。 -書式 int strrep(char *src, char *before, char *after) -戻り値~ 関数の制限事項として、同じ文字数の置換しか行いません。~ 置換前の文字数、置換後の文字数の文字列長が異なる場合は-1を返却します。~ 置換ができた場合は置換した数を返却します。 -引数~ 1つ目: 置換する文字列~ 2つ目: 置換前文字列~ 3つ目: 置換後文字列~ * 置換関数のCサンプルコード [#c407c3e8] &ref(strrep.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サンプルコードでした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
タイムスタンプを変更しない
#navi(../) * 指定した文字列に置換するCサンプルコード [#abb380dc] 指定した文字を指定した文字に置換するCサンプルコードを紹介します。~ #contents #htmlinsertpcsp(c-top.html,c-sp.html) * 関連記事 [#j78c3918] -[[文字列をコピーする・strcpy>文字列/文字列をコピーする・strcpy]] -[[文字列内の文字を1つずつ表示する>文字列/文字列内の文字を1つずつ表示する]] -[[指定した区切り文字で文字列を分割する・strtok>文字列/指定した区切り文字で文字列を分割する・strtok]] -[[文字列置換のCサンプルコード>文字列/文字列置換のCサンプルコード]] -[[小文字を大文字に変換する・toupper>文字列/小文字を大文字に変換する・toupper]] -[[大文字を小文字に変換する・tolower>文字列/大文字を小文字に変換する・tolower]] * 置換関数 [#t6acb6c5] 本Cサンプルコードでは、strrep関数を作成しています。~ strrepの仕様は以下の通りです。 -書式 int strrep(char *src, char *before, char *after) -戻り値~ 関数の制限事項として、同じ文字数の置換しか行いません。~ 置換前の文字数、置換後の文字数の文字列長が異なる場合は-1を返却します。~ 置換ができた場合は置換した数を返却します。 -引数~ 1つ目: 置換する文字列~ 2つ目: 置換前文字列~ 3つ目: 置換後文字列~ * 置換関数のCサンプルコード [#c407c3e8] &ref(strrep.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サンプルコードでした。 #htmlinsertpcsp(c-btm.html,c-sp.html)
テキスト整形のルールを表示する
添付ファイル:
strrep.c
740件
[
詳細
]