文字列/文字列置換のCサンプルコード
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 指定した文字列に置換するCサンプルコード [#abb380dc]
指定した文字を指定した文字に置換するCサンプルコードを紹介...
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
* 関連記事 [#j78c3918]
-[[文字列をコピーする・strcpy>文字列/文字列をコピーする・...
-[[文字列内の文字を1つずつ表示する>文字列/文字列内の文字...
-[[指定した区切り文字で文字列を分割する・strtok>文字列/指...
-[[文字列置換のCサンプルコード>文字列/文字列置換のCサンプ...
-[[小文字を大文字に変換する・toupper>文字列/小文字を大文...
-[[大文字を小文字に変換する・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>文字列/文字列をコピーする・...
-[[文字列内の文字を1つずつ表示する>文字列/文字列内の文字...
-[[指定した区切り文字で文字列を分割する・strtok>文字列/指...
-[[文字列置換のCサンプルコード>文字列/文字列置換のCサンプ...
-[[小文字を大文字に変換する・toupper>文字列/小文字を大文...
-[[大文字を小文字に変換する・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)
ページ名: