String do tablicy char;

0

Witam. Mam problem z zapisaniem tekstu (typu string) do tablicy znaków. Próbowałem czegoś takiego:
string a;
char b[2];
a[0]=b[0];

Ale nie działa. Prosiłbym o pomoc.

0

Tekstem piszesz string do char[] w kodzie na odwrót, o co ci chodzi?

char tb[]="Ala ma kota";
string str;
str=tb;
char *chr=str.c_str();
chr[0]='a';
0

Mam problem z zapisaniem tekstu (typu string) do tablicy znaków.

Może wyjaśnij dlaczego chcesz to zrobić - zresztą twój przykład pokazuje próbę czegoś odwrotnego..

Na stringu można wykonać każdą operację jaką można wykonać na char*, a jeśli musisz przekazać parametr do funkcji która przyjmuje typ char*, to zrób to tak:

foobar(const char *s);
...
string s = "ala ma kota";
foobar(s.c_str());
0
_13th_Dragon napisał(a):
char *chr=str.c_str();
chr[0]='a';

Nie powinieneś tak robić.
Standard nie zakłada, że bufor w stringu jest ciągły.
(Btw. to się nie powinno skompilować ze względu na const)

Poprawny sposób na przepisanie stringa do tablicy znaków to

string str = "Ala ma kota";
char buffer[MAX_SIZE_OF_STRING];
copy(begin(str), end(str), buffer);
buffer[str.size()] = 0;

minusem jest to, że w takim rozwiązaniu musisz znać wcześniej maksymalny rozmiar stringa (ewentualnie możesz dynamicznie zaalokować tę pamięć)

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