Un şir cu maximum 255 de caractere conţine cuvinte formate numai din litere mici ale alfabetului englez. Fiecare cuvânt este urmat de un caracter *. Scrieţi un program C/C++ care citeşte un astfel de şir şi afişează pe ecran şirul obţinut prin eliminarea tuturor cuvintelor din şir care au ca sufix primul cuvânt din şir, ca în exemplu. Un cuvânt a este sufix pentru cuvântul b dacă există un cuvânt c de lungime mai mare sau egală cu 0, astfel încât, prin alipirea cuvântului a la sfârşitul cuvântului c, se obţine cuvântul b.
Exemplu. Pentru şirul: este*soarele*coboara*peste*creste*la*apus*amestecand*norii* se va afişa: *soarele*coboara***la*apus*amestecand*norii*
Daca se poate fara strtok, multumesc frumos
abcdebygabi:
daca cuvantul c are lungime zero, mai e cuvant?
Răspunsuri la întrebare
Răspuns de
4
Nu se poate fara strtok.
#include <iostream>#include <cstring>using namespace std;
int main(){ int i,l; char s[260],*p,cuv1[260]; cin.getline(s,260); p=strtok(s,"*"); strcpy(cuv1,p); l=strlen(cuv1); while(p) { if(strstr((p+strlen(p)-l),cuv1)==NULL) cout<<p; cout<<"*"; p=strtok(NULL,"*"); } return 0;}
#include <iostream>#include <cstring>using namespace std;
int main(){ int i,l; char s[260],*p,cuv1[260]; cin.getline(s,260); p=strtok(s,"*"); strcpy(cuv1,p); l=strlen(cuv1); while(p) { if(strstr((p+strlen(p)-l),cuv1)==NULL) cout<<p; cout<<"*"; p=strtok(NULL,"*"); } return 0;}
Alte întrebări interesante
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Latina,
8 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă
Studii sociale,
9 ani în urmă
Informatică,
9 ani în urmă
Matematică,
9 ani în urmă