Răspuns :
Răspuns:
Am atasta o imagine pentru o lizibilitate mai buna dar o sa-ti las si aici codul pentru copy-paste.
Cam asta fac si ei in barem, numai ca mult mai urat in opinia mea =))
Plus ca ma si construiesc in alt sir... n-are sens, nu zice sa se construiasca in memorie, se spune sa se afiseze, incearca sa gandesti intr-un mod simplist, don't overthink
Explicație:
Am comentat pe cod, tot ce e mai greu de inteles este functia aia, iti recomand sa pui pe hartie si sa faci ca la subiectul I pas cu pas ca sa-ti dai seama cum verific daca este prefix.
COD:
#include<bits/stdc++.h>
using namespace std;
//bool daca cunosti in loc de int dar merge si asa
int estePrefix(char * cuvant, char * prefix){
int dif = strlen(cuvant) - strlen(prefix);
for(int i = strlen(cuvant) - 1; i >= dif; i--){
if(cuvant[i] == prefix[i-dif]){
continue;
}
else{
return 0;
}
}
return 1;
}
int main(){
char s[256]; cin.get(s,256); //s = sirul initial, initializare si citire
char * sep = "*"; //separator
char * cuvant = strtok(s, sep); //obtinerea primului cuvant din sirul citit
char * p = strtok(NULL, sep);
cout<<sep; //mai afixam o steluta la inceput ca asa vor ei
while(p){
if(!estePrefix(p, cuvant)){
cout<<p; // Daca NU este prefix se afiseaza cuvantul
}
cout<<sep; //se afiseaza steluta dupa fiecare cuvant indiferent daca cuvantul s-a afisat sau nu
p = strtok(NULL, sep);
}
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!