Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Buna seara, poate cineva sa mă ajute cu exercițiul acesta ?

Anexe:

Răspunsuri la întrebare

Răspuns de raresvasiu03
1

Răspuns:

#include<bits/stdc++.h>

using namespace std;

int ct; /* numarul de cuvinte*/

char s[101],  *p, aux[101];

char textfinal[10000],  ins[]="succes"; //declar textul modificat si cuvantul succes

int main()

{

    cin.getline(s, 101);

    strcpy(aux, s);

    p = strtok(aux, " "); // extrag toate cuvintele din text rand pe rand si le numar

    while(p != NULL)

    {

         ct ++;

         p = strtok(NULL, " ");

    }

    char a[ct][101]; // declar o matrice de caractere

    p = strtok(s, " ");//introc fiecare cuvant in matrice

    ct = 0;

    while(p != NULL)

    {

         ct ++;

         strcpy(a[ct], p);

         p = strtok(NULL, " ");

    }

    for(int i = 1; i <= ct - 1; i ++)

    {

         char l1, l2;

         l1 = a[i][strlen(a[i]) -1];//ultima litera a unui cuvant

         l2 = a[i + 1][strlen(a[i + 1]) - 1];//ultima litera a urmatorului cuvant

         strcat(textfinal, a[i]);//copiez cuvantul oricum in textul prelucarat

         strcat(textfinal, " ");//adaug un spatiu

         if(l1 == l2)//daca literele sunt egale atunci adaug cuv succes

         {

              strcat(textfinal, ins);//adaug succes la text

              strcat(textfinal, " ");//adaug un spatiu

         }

    }

    strcat(textfinal, a[ct]);//copiex ultimul cuvant din textul initial

    cout << textfinal;

    return 0;

}

Explicație:

Este putin probabil ca spatiul alocat pt. textfinal sa nu fie de ajuns, asa ca puteti sa mai modificati dimensiunea desinata. Am testat programul pe cateva exemple si a functionat, insa daca mai descoperiti unele exemple pe care nu executa corect il puteti adapta dupa bunul plac \^o^/

Alte întrebări interesante