program odwracajacy wyrazy wspak

0

Witam. Jestem początkujący, jeżeli chodzi o c++, dlatego postanowiłem poszukać pomocy na Waszym forum. Mam do napisania program, który zapisuje na wspak podane na wejściu wyrazy. Mi udało się wymęczyć takie cuś:

Kod:

#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

int main()

{
    char wyraz[100], koniec;
   
    cout<<"Witaj!\nJest to program ktory sluzy do\n";
    cout<<"zapisywania na wspak podanych na wejsciu wyrazow\n\n";
    system("pause");

do{
       cout<<"\nWpisz swoje wyrazy oddzielone spacja (nie wiecej niz 100 znakow)\n\n";
   do{
    gets(wyraz);
    if (strlen(wyraz)>100) cout<< "Podales zbyt dlugi ciag znakow. musisz podac do 100 znakow)\n";
     } while(strlen(wyraz)>100);
     
    system("cls");
   
    cout<< "Twoje wyrazy to:\n"; cout<< wyraz;
    cout<<"\n\n\nTwoje wyrazy na wypisane nawspak to:\n";
   
      for(int i=0;i<strlen(wyraz)/2;++i)
            {
            char tmp = wyraz[i];
            wyraz[i] = wyraz[strlen(wyraz)-i-1];
            wyraz[strlen(wyraz)-i-1] = tmp;
            }
   
    cout << wyraz <<endl;
    cout<<"\n\nCzy chcesz zakonczyc program??\ntak -wybierz t\nwroc do poczatku- kazdy inny znak\n";
    cin>> koniec;
  }while (koniec!='t');
return 0;
}

Mam problem z pętla do while, po tym jak chcę powtórzyć program wyskakują cuda wianki, a ja nie wiem jak miałbym to naprawić. Jezeli ktoś miałby jakiś pomysł to z góry dzięki za pomoc:)</cpp>

0

Ta twoja pętla z gets() wcale nie chroni przed wpisanie za duzej ilości wyrazów. Zamień to na coś innego.
Najlepiej na tablicę obiektów typu string.

1 użytkowników online, w tym zalogowanych: 0, gości: 1