/**********************/ /* 文字列操作(1) */ /* 文字列置き換え */ /**********************/ #include #include 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); // 残りを追加 }