• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ std::string , char* , std::wstring

0 głosów
993 wizyt
pytanie zadane 27 marca 2019 w C i C++ przez dawid2002 Mądrala (5,190 p.)

Witam!

Uczę się programować w C++ i zastanawiają mnie dwie sprawy. Jakie zastosowanie w tym języku mają łańcuchy znaków w stylu C (char*) ? Skoro wygodniejsze jest używanie std::string, które oferuje sporo narzędzi do zarządzania ciągami znaków. Druga sprawa, z tego, co wiem używa się wstring wtedy kiedy mamy do czynienia z "szerokimi znakami", tylko że nie wiem czym są te "szerokie znaki", i chciałbym definicji tego pojęcia.

Z góry dziękuje za pomoc!

2 odpowiedzi

+1 głos
odpowiedź 27 marca 2019 przez j23 Mędrzec (195,220 p.)
edycja 28 marca 2019 przez j23

Znaki szerokie to znaki, które mają kody większe od pojemności typu char. W praktyce znaki kodowane są w kodowaniu unicode (UCS-2/UTF-16/UTF-32).

komentarz 27 marca 2019 przez dawid2002 Mądrala (5,190 p.)
Dzięki.
komentarz 27 marca 2019 przez dawid2002 Mądrala (5,190 p.)

@j23,

Skoro jesteś już w temacie , wiesz jakie jest zastosowanie łańcuchów znaków w stylu C ? Oraz kiedy je używać ?

Z góry dziękuje za odpowiedź

komentarz 27 marca 2019 przez j23 Mędrzec (195,220 p.)

Pytasz się o to, kiedy (i po co) używać c-stringi zamiast std::string?

komentarz 27 marca 2019 przez dawid2002 Mądrala (5,190 p.)

@j23,  Tak

komentarz 28 marca 2019 przez j23 Mędrzec (195,220 p.)

std::stringów używasz wszędzie tam, gdzie masz do czynienia z "dynamicznymi" łańcuchami tekstowymi. W przypadku literałów tekstowych std::string większego zastosowania nie ma... zresztą w C++17 masz klasę std::string_view.

komentarz 28 marca 2019 przez dawid2002 Mądrala (5,190 p.)

Dzięki yes

+1 głos
odpowiedź 27 marca 2019 przez VirtualMember Pasjonat (15,790 p.)
char* to przeszłość, spotkasz się z tym głównie wtedy gdy masz doczynienia z jakimś zewnętrznym libem, projektem, który to posiada, a Ty musisz z niego korzystać. Zauważ, że char* to tak samo jakbyś miał int* - tablica zmiennych typu int.
komentarz 27 marca 2019 przez dawid2002 Mądrala (5,190 p.)

Dzięki wielkie yes

Podobne pytania

0 głosów
4 odpowiedzi 3,337 wizyt
0 głosów
1 odpowiedź 1,474 wizyt
pytanie zadane 13 października 2018 w C i C++ przez jegor377 Stary wyjadacz (13,230 p.)
–2 głosów
1 odpowiedź 940 wizyt
pytanie zadane 22 sierpnia 2019 w C i C++ przez niezalogowany

93,631 zapytań

142,555 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...