Stránka 1 z 1

výpis jména odzadu pomocí sizeof

Napsal: 28 pro 2010 17:12
od pextr2142
Dělám takový program, ale nevím jak napsat jméno odzadu pomocí sizeof, zde je můj program:

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
char pismena [] = {231, 130, 161, 160, 216, 159};
cout << "Va" << pismena [0] << "e jm" << pismena [1] << "no pros" << pismena [2] << "m: \a";
int y;
char jmeno [y];
cin >> jmeno;
cout << "V" << pismena [3] << pismena [0] << " v" << pismena [4] << "k pros" << pismena [2] << "m: \a";
char vek [3];
cin >> vek;
int a[5];
cout << "Zadejte 5. " << pismena [5] << pismena [2] << "sel" << " pros" << pismena [2] << "m: \a\n\n";
cin >> a[0];
cin >> a[1];
cin >> a[2];
cin >> a[3];
cin >> a[4];
cout << "\nSou" << pismena [5] << "et " << pismena [5] << pismena [2] << "sel je " << a[0] + a[1] + a[2] + a[3] + a[4] << ".\n";
cin.get();
cout << "\nVa" << pismena [0] << "e jm" << pismena [1] << "no pozp" << pismena [3] << "tku je: \a";
//TADY
sizeof (jmeno);
cout << jmeno;
cin.get();
cin.get();
return 0;
}

Re: výpis jména odzadu pomocí sizeof

Napsal: 29 pro 2010 19:01
od General
K čemu je tenhle řádek?

Kód: Vybrat vše

sizeof (jmeno);


Hele celý je to nějaký divný. Já sice C/C++ moc neumim, ale

Kód: Vybrat vše

int y;
char jmeno [y];

Tam bys měl přece mít velikost řetězce.. Já bych to řešil:

Kód: Vybrat vše

    //deklarace + alokace paměti
    char *jmeno = new char;
    //někde přiřaď hodnotu
    jmeno = "jmeno";

    //vypiš opačně znak po znaku
    for (int i=strlen(jmeno)-1; i>=0; i--) {
        cout << jmeno[i];
    }

    //nezapomenout uvolnit
    delete[] jmeno;