指定した文字を指定した文字に置換するCサンプルコードを紹介します。
本Cサンプルコードでは、strrep関数を作成しています。
strrepの仕様は以下の通りです。
int strrep(char *src, char *before, char *after)
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サンプルコードでした。