Długość dynamicznej tablicy char w unii.

0

Witam na programowanie mam zadanie napisać jakiś program co wyświetli podane imię w kodzie ASCII.
Problem w tym, że chce podawać dowolne imię.
Nie mogę znaleźć jak pobrać tą długość próbowałem już różnymi metodami z neta typu
sizeof(tablica) / sizeof(int), tablica.length itd... CodeBlock ciągle się pluje o coś.
Kod:

 #include <iostream>

using namespace std;

union Unia
{
    char Imie[];
    void Wyp()
    {
        cout << "Podane imie to: " << Imie << endl;
        cout << "Podane imie w ASCI to: ";
        for(int i = 0;i < COTUTAJ  ; i++)
        {
            
            cout << (int)Imie[i] << " ";
        }
    }
};
int main()
{
    Unia MojaUnia;

    cout << "Podaj imie: ";
    cin >> MojaUnia.Imie;
    MojaUnia.Wyp();





}
0

Skoro wczytujesz to w ciągu chodu programu, to nie możesz wykorzystać tablicy w ten sposób. Dynamiczna tablica niewiele ci da, bo musisz znać rozmiar, więc czemu nie użyjesz string'a?

Możesz jeszcze zrobić coś w ten deseń:
http://www.coderscity.pl/sutra150004.html

0

Unia dla tego, że takie zadanie dostaliśmy w unii.

A ze stringami coś mi nie działa. Więc próbuje na charze.

0

Co ci ze stringami nie działa?

#include <iostream>
 
using namespace std;
 
union Unia
{
    string Imie;
    void Wyp()
    {
        cout << "Podane imie to: " << Imie << endl;
        cout << "Podane imie w ASCI to: ";
        for(int i = 0;i < Imie.length(); i++)
        {
 
            cout << (int)Imie[i] << " ";
        }
    }
};
int main()
{
    Unia MojaUnia;
 
    cout << "Podaj imie: ";
    cin >> MojaUnia.Imie;
    MojaUnia.Wyp();
}
0

takie błędy:
user image

0

Coś obrazek nie działa...
Link do imageshack - http://imageshack.us/photo/my-images/821/przechwytywaniezd.jpg/

0

Sprawdziłem u siebie na dopiero co pobranym code block i mam te same błędy co Jarvis.

0

Hm.. bo pola unii nie mogą mieć konstruktorów kopiujących, ale da się rozwiązać to w ten sposób, wstawiając wskaźnik na string'a:

union Union
{
	std::string* strPtr;

	void function()
	{
		strPtr = new std::string();
		*strPtr = "text";
	}
};

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