Untitled

 avatar
unknown
c_cpp
3 years ago
1.4 kB
3
Indexable
#include <stdio.h>
#include<string.h>
#include<stdbool.h>
#include<ctype.h>
char str1[100000],str2[10000],str3[100000];
char *cmpStr=" '():,.!<>_?\"/;";
char ary[10000000];

int main(){
  scanf("%s%s -%s\n",str1,str2,str3);
  int lenStr1=strlen(str1);
  int lenStr2=strlen(str2);
  int lenStr3=strlen(str3);
  scanf("%[^\n]",ary);
  char *p;
  
  if(strcmp(str3, "i")!=0){
    printf("QQQQQQQQQQQQQ\n");
  }
  else{
    p=strtok(ary, cmpStr);
    while(p!=NULL){
      bool ctrl=false;
      int len=strlen(p);
      if(strcmp(str3, "i")==0){
        for(int j=0;j<len;j++){
          int i;
          for(i=0;i+j<len&&i<lenStr1;i++){
            if(tolower(p[j+i])!=tolower(str1[i])){
              break;
            }
          }
          if(i==lenStr1){
            ctrl=true;
            p[j]='^';
          }
        }
      }
      else{
        for(int j=0;j<len;j++){
          int i;
          for(i=0;i+j<len&&i<lenStr1;i++){
            if(p[j+i]!=str1[i]){
              break;
            }
          }
          if(i==lenStr1){
            ctrl=true;
            p[j]='^';
          }
        }
      }
      if(ctrl){
        for(int j=0;j<len;j++){
          if(p[j]!='^'){
            printf("%c",p[j]);
          }
          else{
            printf("%s",str2);
            j+=lenStr1-1;
          }
        } 
        printf("\n");
      }
      p=strtok(NULL,cmpStr);		 
    }
  }
}