Pobieranie znaków z argumentu funkcji main

0

Witam

Mam problem z wpisaniem pojedynczych znaków do tablicy z podanych jako argumenty funkcji main. Na przykład:

C:/.../Projekt1.exe Ala ma kota

argv[1]=Ala
argv[2]=ma
argv[3]=kota

Mianowicie chciałbym to przepisać do tablicy tak aby każdy indeks tablicy przechowywał tylko jedna literę/znak, a nie słowo czyli:

tab[0]="A"
tab[1]="l"
tab[2]="a"
tab[3]=" "
tab[4]="m"
tab[5]="a"
tab[6]=" "
tab[7]="k"
tab[8]="o"
tab[9]="t"
tab[10]="a"

Z góry dziękuje za pomoc :)

0

Może każde słowo do stringa, później zrób 3 tablice o długości poszczególnych stringów i przelatując po każdej literce w stringu zapisuj ją do tablicy.
Edit: Dopiero jak @furious programming napisał swój post to zauważyłem, że chcesz do jednej wszystko. W takim razie dodać stringi i dopiero przelecieć - jeszcze łatwiej.

0

Możesz przepisać wartości wybranych argumentów do zmiennej łańcuchowej (zesumować je z ustalonym separatorem), po czym zawartość łańcucha skopiować do przygotowanej macierzy; Możesz też bezpośrednio przekopiować łańcuchy z argumentów do macierzy, ale musisz wcześniej znać łączną ilość znaków wybranych do kopiowania argumentów.

0

Super dzieki wielkie :D

A jeszcze mam takie pytanie tak jak opisał to @szweszwe mianowicie czy jest możliwość przepisania znaków każdego słowa do innej tablicy ? Czyli:

tab[0]="A"
tab[1]="l"
tab[2]="a"

tab1[0]="m"
tab1[1]="a"

tab2[0]="k"
tab2[1]="o"
tab2[2]="t"
tab2[3]="a"

Tyle ze ilość argumentów(słów) wprowadzonych w konsoli jest nie skończenie wiele co za tym idzie musi powstać nie skończenie wiele tablic. O ile dobrze pamiętam tablica musi być zdefiniowana na etapie kompilacji i nie da się tak zrobić czy może się mylę :P ?

0

Poczytaj o dynamicznym przydzielaniu pamięci.
Jeżeli wydaje ci się że potrzebujesz osobną tablicę na każdy znak to coś jest nie tak z twoimi założeniami.
Znak w C/C++ zapisuje się w pojedynczych cudzysłowach 'A'

0

Chodziło mi osobną tablice na każde słowo a nie znak ale ok tak tylko pytałem.
Dzięki za pomoc :)

1

Przecież w argumencie funkcji main już masz osobną tablice na każde słowo.

0

Ok a mógłbyś mi powiedzieć jak wrzucić argument funkcji main do stringu ?

0

Np tak:

string s = argv[1];
0

terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process exited with return value 3
Press any key to continue . . .

tak zrobilem ale nie jak mi to nie chula

dodanie znacznika <quote> dla treści błędu - fp

0

hm...
Pozamieniaj sobie spacje na NULL'e, a jako tablice pozapisuj wskaźniki do pierwszych znaków po NULL'u.

0

Jak zrobisz tak: C:/.../Projekt1.exe "Ala ma kota" to będziesz mieć "Ala ma kota" w argv[1] co oznacza, że możesz potem sobie zrobić argv[1][0] ('A') argv[1][1] ('l') itd.

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