Zaczytanie do tablicy char

0

Panowie ch..oroba. Problem jest taki. Rzecz dzieje sie w forze. W kazdym obrocie fora dostaje liczbe n, jest to rozmiar tablicy charow. Po wczytaniu tego n tworze tablice charow i w tej samej linii co to poprzednie n dostaje n liczb ktorymi ta tablice trzeba wypelnic. Sek w tym ze oddzielonych spacjami. Przyklad zobrazuje to co chce przekazac:

4 23 95 3 21 -> 4 jest rozmiarem tablicy charow, kolejne liczby sa wartosciami kolejnych komorek. Jak to wczytac najprosciec[c/c++ bez roznicy] bez konfliktow, naruszenia pamieci i tym podobnych. Przeszkadzaja mi te spacje po kazdej z liczb.

0

po co oddzielasz spacjami poszczególne chary? Opisz coś więcej co chcesz zrobić

0

C++ - char *Tb=new char[n+1]; /wczytywanie/ delete[] Tb;
C - char Tb=(char)malloc(n+1); /wczytywanie/ free(Tb);
wczytywanie - for(i=0;i<n;++i) Tb[i]=...;
+1 aby wpisać znak końca napisu.
Tb[n]=0; - wpisanie tego znaku końca.

0

Nie ja oddzielam, taki dostaję narzucony input- muszę się dostosować niestety. Chcę je zwyczajnie wczytać do kolejnych komórek tej tablicy nowo powstałej.

@_13th_Dragon
Dzięki, jednak bardziej zależy mi na sposobie wczytania do tej tablicy niż na samej jej alokacji. Nie wiem co zrobić z tymi spacjami po n(albo jak kto woli przed wartością pierwszej komórki) i kolejnymi.

0

Pytanie tylko czy masz char'y czy int'y reprezentujące kod ASCII char'a czy też napisy które z braku wiedzy nazywasz też char'ami.

0

Jest to tablica char w której są przechowywane liczby(cyfry i liczby). Standard chyba tego nie zabrania? Potrzebuję tego ponieważ później na tej tablicy będę wykonywał coś a'la haszowanie i część z komórek będę potrzebował nadpisać zwykłymi znakami alfanumerycznymi. Nie wiem jak w prosty sposób zrealizować wczytywanie danych zadanych w ten sposób żeby uniknąć błędów o których wspomniałem w pierwszym poście.

0

Przy wejściu wejściowym: 4 23 95 3 21
chcesz mieć coś takiego: char Tb[]={23,95,3,21};
czy coś takiego: char *Tb[]={"23","95","3","21"};
?

0

Opcja pierwsza tj.
char Tb[]={23,95,3,21};

0

No to w czym problem?
char *Tb=new char[n];
for(i=0;i<n;++i) { int x; cin>>x; Tb[i]=(char)x; }
delete[] Tb;

0

Z ciekawości, jak by wyglądała druga wersja?

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