Facebook
From Tiny Cassowary, 2 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 99
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char *verificarSubstring(char str1[], char str2[]){
  5.     int tam1 = strlen(str1)-1, tam2 = strlen(str2)-1;
  6.     int i, j, k;
  7.    
  8.     for(i = 0; str1[i] != '\0'; i++){
  9.         if((str2[i+1] >= 'A' && str2[i+1] <= 'Z')&&(str1[i] >= 'a' && str1[i] <= 'z')){
  10.             str1[i] += 'A' - 'a';
  11.         }
  12.     }
  13.    
  14.     for(i = 0; i < tam2; i++){ //percorrendo a string da frase
  15.         if(str1[0] == str2[i]){ //comparando a primeiral letra da palavra com a string da frase
  16.             j = i+1; //contador a partir de i, que já foi comparado
  17.             for(k = 1; k < tam1; k++, j++){ //comparando os proximos caracteres da substring com a frase
  18.                 if(str1[k] != str2[j]){ //checando se os proximos caracteres serão diferentes
  19.                     break; // caso sejam, voltar para o primeiro for
  20.                 }else if(k == tam1-1){ //verificando se a primeira string está inteiramente dentro da segunda
  21.                     return &str2[i];
  22.                 }
  23.             }
  24.         }
  25.     }
  26.     return NULL;
  27. }
  28.  
  29. int main(){
  30.     char str1[50], str2[50];
  31.     char *verificacao = NULL;
  32.     int i;
  33.  
  34.     fgets(str1, 50, stdin);
  35.     fgets(str2, 50, stdin);
  36.    
  37.     verificacao = verificarSubstring(str1, str2);
  38.     if(str1[strlen(str1)-1] == '\n'){
  39.         str1[strlen(str1)-1] = '\0'; //remove \n do fim da string lida
  40.     }
  41.    
  42.     if(verificacao == NULL){
  43.         printf("%s não é substring de %s", str1, str2);
  44.     }else{
  45.         printf("%s", verificacao);
  46.     }
  47.     return 0;
  48. }