that_one_nigga_you_k

teste da sopa

Nov 24th, 2023
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.     char sopa[100];
  6.     char palavras[5][20];  // Assumindo um máximo de 5 palavras, cada uma com comprimento máximo de 20
  7.     int indices[5][20];      // Para armazenar índices para cada substring
  8.     int counts[5];           // Para armazenar a contagem de caracteres encontrados para cada substring
  9.     int numpalavras;
  10.     int achador = 0;
  11.  
  12.     // Ler a string principal
  13.     printf("Digite a string principal: ");
  14.     scanf("%99s", sopa);
  15.  
  16.     // Ler o número de palavras
  17.     printf("Digite o número de palavras (até 5): ");
  18.     scanf("%d", &numpalavras);
  19.  
  20.     // Ler cada substring
  21.     for (int k = 0; k < numpalavras; k++) {
  22.         printf("Digite a substring %d: ", k + 1);
  23.         scanf("%19s", palavras[k]);
  24.         counts[k] = 0;  // Inicializar contagens como 0 para cada substring
  25.     }
  26.  
  27.     // Encontrar e armazenar os índices para cada substring
  28.     for (int k = 0; k < numpalavras; k++) {
  29.         int count = 0;
  30.  
  31.         for (int j = 0; j < strlen(palavras[k]); j++) {
  32.             char currentChar = palavras[k][j];
  33.             int found = 0;
  34.  
  35.             for (int i = 0; i < strlen(sopa); i++) {
  36.                 if (currentChar == sopa[i]) {
  37.                     indices[k][count++] = i;
  38.                     found = 1;
  39.                     break;
  40.                 }
  41.             }
  42.  
  43.             // Se o caractere não for encontrado, definir seu índice como -1
  44.             if (!found) {
  45.                 indices[k][count++] = -1;
  46.             }
  47.         }
  48.  
  49.         counts[k] = count;  // Atualizar a contagem para a substring atual
  50.     }
  51.  
  52.     // Realizar remoções na ordem da entrada do usuário
  53.     for (int k = 0; k < numpalavras; k++) {
  54.         // Verificar se a substring inteira está presente na string principal
  55.         int substringPresent = 1;
  56.         for (int i = 0; i < counts[k]; i++) {
  57.             if (indices[k][i] == -1 || sopa[indices[k][i]] == '0') {
  58.                 substringPresent = 0;
  59.                 break;
  60.             }
  61.         }
  62.  
  63.         // Remover a substring se ela estiver completamente presente na string principal
  64.         if (substringPresent) {
  65.             achador++;
  66.             for (int i = 0; i < counts[k]; i++) {
  67.                 sopa[indices[k][i]] = '0';
  68.             }
  69.         }
  70.  
  71.         // Imprimir a string principal após remover palavras
  72.         printf("String principal após remover palavras: %s\n", sopa);
  73.     }
  74.  
  75.     // Imprimir o número de palavras encontradas
  76.     printf("\n\n%d\n\n", achador);
  77.  
  78.     return 0;
  79. }
  80.  
Add Comment
Please, Sign In to add comment