Informatică, întrebare adresată de stefaniac99, 8 ani în urmă

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?
stefaniac99: nu

Răspunsuri la întrebare

Răspuns de dumitrasroxana
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;}
Alte întrebări interesante