/**********************/
/* 文字列操作(1) */
/* 文字列置き換え */
/**********************/
#include <stdio.h>
#include <string.h>
void strREPall(char*,char*,char*,char*); // 文字列置き換え
void main( )
/*----------------*/
/* 主プログラム */
/*----------------*/
{
char str1[256],str2[256],str3[256],str4[256];
printf("\n\n\n★文字列置き換え★\n");
printf("\n元の文字列: "); fflush(stdout);
gets(str1); // キーボードから入力
printf("\n検索文字列: "); fflush(stdout);
gets(str2); // キーボードから入力
printf("\n置換文字列: "); fflush(stdout);
gets(str3); // キーボードから入力
strREPall(str1,str2,str3,str4); // 文字列置き換え
printf("\n\n結果文字列: %s\n",str4);
}
void strREPall(
/*----------------------------------------*/
/* 文字列置き換え */
/* */
/* 文字列str1中の文字部分列str2を、 */
/* すべてstr3に置き換え、str4に格納する */
/*----------------------------------------*/
char *str1,
char *str2,
char *str3,
char *str4)
{
char *cp,*cpO;
int len,len2;
str4[0]='\0';
len2=strlen(str2);
cpO=str1; // 検索開始位置
while( 1 )
{
cp=strstr(cpO,str2); // 文字部分列検索
if ( cp==NULL ) break; // str2なし
len=cp-cpO;
strncat(str4,cpO,len); // str2まで追加
strcat(str4,str3); // str3を追加
cpO=cp+len2; // 検索開始位置
}
strcat(str4,cpO); // 残りを追加
}
|