Wyciąganie pojedyńczych liter ze stringa do zmiennej tablicowej

0

Witam chciałbym się zapytać jak zrobić aby przenieść ze zmiennej string pojedyncze litery imienia do zmiennej tablicowej,substr coś opornie działa raz pobiera jedną potem kilka.

#include <iostream>
using namespace std;
main()
{
string imie;	
cout<<"Podaj imie"<<endl;	
cin>>imie;	
int ilosc=imie.length(),j=1;
string tab[ilosc];

for(int i=0;i<ilosc;i++)
{
tab[i]=imie.substr(i,i+1)	;
j++;	
}

for(int i=0;i<ilosc;i++)
{
cout<<tab[i]<<endl;	
	
}
system("pause");
}
2

Wystarczy przeczytać dokumentację. Drugim parametrem nie jest offset, tylko liczba znaków.

0

tez nie działa

#include <iostream>
using namespace std;
main()
{
string imie;	
cout<<"Podaj imie"<<endl;	
cin>>imie;	
int ilosc=imie.length();
string tab[ilosc];

for(int i=0;i<ilosc;i++)
{
tab[i]=imie.substr(i,ilosc);
	
}

for(int i=0;i<ilosc;i++)
{
cout<<tab[i]<<endl;	
	
}
system("pause");
}
1

Zdefiniuj nie działa. https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/

Zakładam, że problemem jest to, że chcesz wyciągać po jednym znaku, a robisz sobie substringi mające ilosc znaków.

0

Chciałbym aby po wpisaniu imienia np "Damian" w tablicy przypisać tab[0]="D",tab[1]="a",tab[2]="m",tab[3]="i",tab[4]="a",tab[5]="n"

2

W takim razie zapraszam serdecznie do lektury przykładu z cppreference, do którego linka umieściłem wyżej. To nie gryzie.

5
  1. Zapoznaj się ze stroną http://format.krzaq.cc/, bo bez wcięć daleko nie zajedziesz
  2. int main()
string tab[ilosc];

To nie jest poprawny kod w standardowym C++. Skoro już używasz string to używaj też vector. I potrzebujesz tablicy znaków, nie stringów.

vector<char> tab;

A w ogóle to cały problem można rozwiązać w ten sposób: ```cpp vector<char> tab(imie.begin(), imie.end()); for (char i : tab) cout < i << endl; ```

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