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

Konwersja string na liste

0 głosów
660 wizyt
pytanie zadane 20 czerwca 2022 w C i C++ przez MichaelM Gaduła (3,000 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 Mentor (355,180 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 (256,580 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 1,069 wizyt
0 głosów
1 odpowiedź 1,810 wizyt
pytanie zadane 12 kwietnia 2016 w C i C++ przez Barus Stary wyjadacz (14,120 p.)
0 głosów
1 odpowiedź 634 wizyt
pytanie zadane 15 grudnia 2022 w C i C++ przez piotr_domanski Bywalec (2,580 p.)

93,736 zapytań

142,672 odpowiedzi

323,295 komentarzy

63,299 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...