ďťż

Ładny brzuch

Witam,
jak wczytać do tablicy char tekst ale zeby pierwsza litera byla w tablicachar[1] a nie talicachar[0]
Użytkownik Ka-lolek edytował ten post 03 lipiec 2007, 10:20


wczytać tak zeby była w [0] a potem sobie przepisać żeby w 0 był NULL a dalej tekst :)

Nie rozumiem sensu, ale może:strcpy(tablicachar+1,source);

jak sie pewnie domyslasz nie o to mi chodzilo no ale skoro nie ma innego sposobu..
tak czy siak thx za odp




jak sie pewnie domyslasz nie o to mi chodzilo no ale skoro nie ma innego sposobu..
a o co? slyszales pewnie kiedys tekst o braku krysztalowej kuli... chodzi ci o przesuniecie elementow w tablicy charow o 1, zeby z stringa zaczynajacego sie od 0 zrobil sie zaczynajacy sie od 1?
Użytkownik Deadeye edytował ten post 01 lipiec 2007, 14:44
nie do konca przesuniecie...chce wczytywac w ten sposob odrazu (zeby poczatek tekstu byl w 2. elemencie stringa), bez wczytania najpierw do jednej tablicy a pozniej przekopiowywania do drugiej, bo zalezy mi na efektywnosci.
a napisalem, ze zapewne domysla sie, iz nie o to mi chodzilo, bo tamten sposob jest oczywisty i w kazdym innym przypadku pewnie by sie sprawdzil:P
w necie tez nic na ten temat nie znalazlem takze pewnie nie ma takiej mozliwosci.. a szkoda:) jezeli bylaby to tablica tworzona dynamicznie, to poprostu wystarczyloby przesunac wskaznik o jeden do tylu i osiagneloby sie taki skutek jak mowie, ale ja nie mam takiej tablicy:)
pozdrawiam

1. Jaki język??
2. Skąd wczytujesz?
A może wystarczy na czas wczytywania przesunąć wskaźnik tablicy, a potem go poprawić? Nie opisałeś jasno sytuacji...

hmm zawsze możesz dać tak(jeśli to o taką sytuację chodzi)
const char * tekst = "00Dalszy tekst i on chyba powinnien być od [1] bo w [0] będzie NULL";
czy tam jakiś znak specjalny, dokładnie nie pamiętam czy to jest 00, może coś innego
pozatym zapodaj dokładnie o jaką sytuację Ci chodzi

nie 00 tylko "\ 0" - bez spacji, ale wtedy ipb to usuwa jako niebezpieczny symbol :D
np. "\ 0tekst" - takie cos wpisane do tablicy wpisze null do pierwszego elementu i tekst do kolejnych (oczywiscie tez bez spacji miedzy \ oraz 0). odczytujac z klawiatury mozesz podac po prostu +1,np.
char tekst[100];
cin >> tekst+1;
Użytkownik Deadeye edytował ten post 01 lipiec 2007, 20:15
String tab1 = "ala ma kota"; char tab2[15]; strcpy(tab2+1,tab1.c_str());
albo
sprintf(tab2+1, "%s", tab1);

Nie jestem pewien czy o to ci chodzi...
Użytkownik Nodnol edytował ten post 02 lipiec 2007, 00:09
Kombinujecie strasznie..

Zakładając, że tablice są w pamięci rozkładane spójnie (a zwykle są), i scanf jako argument przyjmuje wskaźnik na początek przeznaczonego na string miejsca w pamięci, wystarczy takie coś:
scanf("%s",&str[1]);
gdzie za jedynkę trzeba podstawić indeks tablicy na którym chcesz zacząć

Przynajmniej u mnie to działa.
Użytkownik bryn edytował ten post 02 lipiec 2007, 10:58

Kombinujecie strasznie..

Zakładając, że tablice są w pamięci rozkładane spójnie (a zwykle są), i scanf jako argument przyjmuje wskaźnik na początek przeznaczonego na string miejsca w pamięci, wystarczy takie coś:
scanf("%s",&str[1]);
gdzie za jedynkę trzeba podstawić indeks tablicy na którym chcesz zacząć

Przynajmniej u mnie to działa.


przeciez napisalem to przed chwila, jeszcze prostsza wersja takiego wywolania jest wlasnie
scanf("%s",str+1);


nie 00 tylko "\ 0" - bez spacji, ale wtedy ipb to usuwa jako niebezpieczny symbol :D
np. "\ 0tekst" - takie cos wpisane do tablicy wpisze null do pierwszego elementu i tekst do kolejnych (oczywiscie tez bez spacji miedzy \ oraz 0). odczytujac z klawiatury mozesz podac po prostu +1,np.
char tekst[100];
cin >> tekst+1;

o coś takiego mi chodziło właśnie ale ibp zjadło :P

tylko że nadal nie wiemy co Ka-lolek miałÂ na myśli ....

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •