Kezdőoldal » Számítástechnika » Programozás » Hogyan tudok szöveget megfordí...

Hogyan tudok szöveget megfordítani c++ban?

Figyelt kérdés
Az elv megvan, hogy hogyan tudok fényújságot gyártani,és elsö, utolsó betüket felcserèlni, de egész szöveget nem..valaki segítseen, mutatok kódokat is vagy mi, vagy csak a logikaját mondja el valaki lègyszii

2017. okt. 24. 21:52
1 2
 11/14 anonim ***** válasza:

Itt egy példa:

[link]

a lényeg a rotate függvényben van: eltároljuk az első betűt, kitöröljük, majd visszaillesszük az eltárolt első betűt a karakterlánc végére.

2017. okt. 25. 15:32
Hasznos számodra ez a válasz?
 12/14 sharkxxx ***** válasza:
45%

#include <cstring>

#include <iostream>

#include <windows.h>


void strrotate(char * s)

{

    int len = strlen(s);

    char first = s[0];

    strcpy(s, s + 1);

    s[len-1] = first;

    s[len] = '\0';

}


int main(int argc, char *argv[])

{

    using std::cout;

    using std::endl;

    char * default_text = " fenyujsag";

    char * text;

    if (argc > 1) {

        // Use the text given by the first parameter.

        text = new char[strlen(argv[1])+1];

        strcpy(text, argv[1]);

    } else {

        text = new char[strlen(default_text)+1];

        strcpy(text, default_text);

    }

    do {

        cout << '\r'; // Return the cursor to the beginning of the line.

        cout << text;

        Sleep(500);

        strrotate(text);

    }

    while ((!GetAsyncKeyState(VK_ESCAPE)) &&

          (!GetAsyncKeyState(VK_RETURN)));

    cout << endl;

    delete [] text;

    return 0;

}

2017. okt. 25. 17:21
Hasznos számodra ez a válasz?
 13/14 tabaki ***** válasza:
100%

A #10-ben emlegetett együgyűbb megoldás:


#include <iostream>

#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) || defined(__TOS_WIN__)

    #include <windows.h>

    inline void varj(unsigned long ms){Sleep( ms );}

#else // presume POSIX

    #include <unistd.h>

    inline void varj(unsigned long ms){usleep( ms * 1000 );}

#endif

using namespace std;


int main(){

string s = "tabaki";

    cout << s << flush;

    for(unsigned int j=0; j<s.length()*10; j++){

        varj(200);

        char tmp = s[0];

        for(unsigned int i=0; i<s.length()-1; i++) s[i] = s[i+1];

        s[s.length()-1] = tmp;

        cout << '\r'<< s << flush;

    }

    cout << endl;

    return 0;

}

2017. okt. 25. 23:36
Hasznos számodra ez a válasz?
 14/14 tabaki ***** válasza:

#11 programja, módosítva:


[link]

2017. okt. 26. 19:16
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!