*char na string

0

Mam wydaje mi sie prosty problem. Chodzi mi o to ze mam wskaznik do tablicy znakow char i to co tam jest chce wrzucic do stringa. Wiem z na odwrot mozna zrobic string.c_str(), ale jak zrobic char na string... znak po znaku?? Nie ma czegos konkretnego??

0

String str = wskaznik_do_lancucha;

0

No tak faktycznie...sorry... nie bylo pytania....
No takale skoro juz to wiem to powiedz mi jeszcze jak zrobic cos takiego, kiedy wiem ze w pamieci jest jakis ciag znakowy, a adres jest przechowywany w:
const unsigned short *atryb_name
Czyli atryb_name = adres w pamieci
a *atryb_name zwraca kod ASCII znajdujacego sie pod tym adresem znaku
Jak to z tego miejsca zczytac do stringa??
Kiedy ten adres proboje wrzucic do stringa to w kompilacji mam error :[

cannot convert from 'const unsigned short *' to 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'

Rzutowanie moze jakies zrobic??

0

Rzutuj na char*
NIe wiem czy dokładnie o coś takiego ci chodzi:

        char *c = "hello";
        const unsigned short *atryb_name = (const unsigned short*)c;
        String str = (char*)atryb_name;

I nie próbuj robić żadnych sztuczek na wskaźnikach w stylu

atryb_name++

bo kompilator myśli że nadal używasz const unsigned short

 i doda 2 zamiast 1.
0

Tak tak... wlasnie o cos takiego mi chodzi, niestety juz to probowalem i dostaje error:

error C2440: 'initializing' : cannot convert from 'char' to 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >'

co jest dziwne... mi tez sie wydaje ze rzutowanie powinno dzialac... ale nie dziala :[

Jak przyjdzie ci cos inego do glwy to napisz... (a tak w ogóle to zgadzam sie Bill=Debil) ;)

0

Dziwna sprawa bo umnie (C++Builder 6 Pe) wszystko idzie gładko. Napisz na jakim kompilatorze pracujesz.

0

A ja na Visualu 6.0 :(. Ale spoko juz to zrobilem na piechote, zczytywanie znak po znaku do tablicy char (przesuwam wskaznik w pamieci po kolejnych elementach), potem wskaznik do tablicy idzie do stringa.... Troche przydlugie i kombinowane, ale dziala.

0

wiesz mozliwe ze miales problem z rzutowaniem z pamięci bo z teego co pamietam o visualu to dla niego char (pojedynczy znak) ma w pamieci dwa bajty a nie jeden jak to jest np w builderze...

0

Mejbi ju hew rajt.... :]

0

wiesz mozliwe ze miales problem z rzutowaniem z pamięci bo z teego co pamietam o visualu to dla niego char (pojedynczy znak) ma w pamieci dwa bajty a nie jeden jak to jest np w builderze...

Ciekawe co te mendy z ms knuly [???]
Po co ten drugi bajt?

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