Basic pointer question

0

I needed to make a program that the user enters two sentences, then the program identifies the first occurrence of sentence 2 in sentence 1, and then deletes that occurrence and prints the new first sentence. For example, the user types "the mouse ripped" as the first phrase, then in the second sentence it types "ra", then the program will print "to ripped". I need to do this program using pointers. Where is my error?

#include <stdio.h>
#include <stdlib.h>


void StrDelStr(char s1[20], char s2[20]){
    char *pont1=s1;
    char *pont2=s2;
    char *tmp1 = NULL;
    char *tmp2 = NULL;
    for (; *pont1 != '
#include <stdio.h>
#include <stdlib.h>


void StrDelStr(char s1[20], char s2[20]){
    char *pont1=s1;
    char *pont2=s2;
    char *tmp1 = NULL;
    char *tmp2 = NULL;
    for (; *pont1 != '%pre%'; pont1 = pont1 + 1){
        if (*pont1 == *pont2){          /* se o valor apontado por pont1 for igual ao valor apontado por pont2 */
        tmp1 = pont1;       /* variavel temporaria que armazena pont1 quando a primeira igualdade é verificada */
        tmp2 = pont2;
            for (; *pont1 = *pont2 ; pont1 = pont1 + 1){ /* verifica se os demais caracteres são iguais */
                pont2 = pont2 + 1;
                if (*pont2 == '%pre%'){   /* se chegou até o valor de pont2 ser igual a %pre%, então a string s2 tá contida em s1 */
                    for (; tmp1 == tmp2; tmp1 = tmp1 + 1){    /* apaga os primeiros espaços de s1 que possui a string de s2 */
                        tmp2 = tmp2 + 1;
                        *tmp1 = ' ';
                    }
                    puts(s1);
                    exit(0);
                }
            }
        }
    }
}

int main(){
    char ss1[20], ss2[20];
    printf("Digite a primeira frase. \n");
    scanf(" %[^\n]", ss1);
    printf("\nDigite a segunda frase. \n ");
    scanf(" %[^\n]", ss2);

    StrDelStr(ss1, ss2);
    return 0;
}
'; pont1 = pont1 + 1){ if (*pont1 == *pont2){ /* se o valor apontado por pont1 for igual ao valor apontado por pont2 */ tmp1 = pont1; /* variavel temporaria que armazena pont1 quando a primeira igualdade é verificada */ tmp2 = pont2; for (; *pont1 = *pont2 ; pont1 = pont1 + 1){ /* verifica se os demais caracteres são iguais */ pont2 = pont2 + 1; if (*pont2 == '%pre%'){ /* se chegou até o valor de pont2 ser igual a %pre%, então a string s2 tá contida em s1 */ for (; tmp1 == tmp2; tmp1 = tmp1 + 1){ /* apaga os primeiros espaços de s1 que possui a string de s2 */ tmp2 = tmp2 + 1; *tmp1 = ' '; } puts(s1); exit(0); } } } } } int main(){ char ss1[20], ss2[20]; printf("Digite a primeira frase. \n"); scanf(" %[^\n]", ss1); printf("\nDigite a segunda frase. \n "); scanf(" %[^\n]", ss2); StrDelStr(ss1, ss2); return 0; }
    
asked by anonymous 22.04.2018 / 20:23

0 answers