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

Konwersja string na liste

Object Storage Arubacloud
0 głosów
290 wizyt
pytanie zadane 20 czerwca 2022 w C i C++ przez MichaelM Bywalec (2,540 p.)

Witam, mam stringa tekst = "123"- chciałbym z niego zrobić listę char a["1", "2", "3"]. Jak to zrobić? Gdy używam metody toCharArray() wyskakuje błąd [Error] 'std::string' {aka 'class std::__cxx11::basic_string<char>'} has no member named 'toCharArray'. Proszę o pomoc.

komentarz 20 czerwca 2022 przez adrian17 Ekspert (346,900 p.)

Ciężko zrozumieć co w zasadzie chcesz zrobić...

listę char a["1", "2", "3"]

Chyba mieszasz pojęcia tablicy vs listy oraz stringa vs chara. Ale zakładam że masz na mysli tablicę charów...

Nie ma czegoś takiego jak 'toCharArray()', tak samo jak nie ma 'zamienNaTabliceCharow()'; nie wiem skąd to wziąłeś.

Ba, string to już w zasadzie jest tablica charów. Nie trzeba robić żadnej "konwersji".

Więc co takiego chcesz zrobić że potrzebujesz "zamienić string na tablicę charów"?

1 odpowiedź

0 głosów
odpowiedź 20 czerwca 2022 przez Apled Dyskutant (9,520 p.)

Możesz to zrobić na kilka sposobów.

Możesz przeiterować przez string i wrzucać znaki do tablicy.

Możesz użyć strcpy(a, tekst.c_str()) - podajesz gdzie zapisać i co.

Możesz zrobić tak:

    std::string str = "123";

    int len = str.length();
    char* tab;
    tab = &str[0];

    for (int i = 0; i < len; i++) {
        std::cout << tab[i] << '\n';
    }

Będzie jeszcze co najmniej kilka sposobów, jeżeli będziesz korzystał z bibliotek do stringów.

komentarz 20 czerwca 2022 przez VBService Ekspert (254,880 p.)
edycja 20 czerwca 2022 przez VBService

@adrian17, napisał

Ba, string to już w zasadzie jest tablica charów. Nie trzeba robić żadnej "konwersji".

 

#include <iostream>

using namespace std;

int main()
{
    string str = "123";

    for (int i = 0; i < str.length(); i++)
        cout << str[i] << ' ';

    return 0;
}

 

no i

mam stringa tekst = "123"- chciałbym z niego zrobić listę char a["1", "2", "3"]. 

 

ten zapis 

char a["1", "2", "3"];

zwróci błąd.

chyba chodziło Tobie o coś takiego np.

    string str = "123";
    char chstr[3] = { '1', '2', '3' };

 

Podobne pytania

0 głosów
2 odpowiedzi 857 wizyt
0 głosów
1 odpowiedź 1,368 wizyt
pytanie zadane 12 kwietnia 2016 w C i C++ przez Barus Stary wyjadacz (14,120 p.)
0 głosów
1 odpowiedź 270 wizyt
pytanie zadane 15 grudnia 2022 w C i C++ przez piotr_domanski Bywalec (2,080 p.)

92,760 zapytań

141,684 odpowiedzi

320,468 komentarzy

62,104 pasjonatów

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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...