Új hozzászólás Aktív témák
-
dvcs_
újonc
válasz Blaise7 #9178 üzenetére
tomb deklaralasnal meg kellene adni a meretet is, nem?
szal char str2[5];long shot, de beprobalom: az alga feladatgyujtemenyhez van valakinek leirasa? leginkabb az 1,3,(4) fejezetek nem mennek aszomptotikus, legjobb-legrosszabb-atlagos eset, rekurzio(ez csak kicsit)
vagy esetleg tipp, hogy Berend Gabor melyikekbol szeret feladatot adni? -
cocma
újonc
válasz Blaise7 #9178 üzenetére
Egy lehetséges megoldás:
#include <stdio.h>
#include <string.h>
void strtorles(char[]);
int main()
{
char str[6] = "hello";
printf("kezdo: %s \n", str);
strtorles(str);
printf("torolt: %s \n", str);
return 0;
}
void strtorles(char str[])
{
int hossz = strlen(str);
int ujhossz = (hossz / 2) + (hossz % 2);
int i = 0;
for(i; i < ujhossz; i++)
{
str[i] = str[2 * i];
}
str[i] = '\0';
}Több probléma is van a kódoddal (forgatni nem is próbáltam, így nem tudom, hogy konkrtan mi a baja a fordítónak). Először is, ha mindenképp új tömbbe szeretnéd megkapni az eredményt (nem célszerű, lásd később) akkor annak (str2), ahogy előttem is írták helyet kell foglalnod. Mivel nem tudod előre fordítási időben, hogy milyen hosszú sztringről van szó, ezért mindneképp dinamikusan (malloc) kéne foglalnod, tehát ilyesmi szóba se jöhet: char str2[5];
A getchar() stdinput-ról olvas, tehát akkor jöhetne szóba, ha pl. az lenne a feladat, hogy egy bill.-ről beolvasott sztringből töröld minden 2. karaktert. Itt viszont a függvény argumentumaként kapod. Tehát ahogy te gondolod, úgy nem fogod mekapni a sztring hosszát.
Az utolsó hiba, hogy tömbnek nem adhatsz értékül tömböt, át kellene másolnod az elemeit egyesével. Mint korábban írtam, ezért is célszerű abban a tömbben dolgoznod amit argumentumként kapsz. Ezzel elkerülheted a másolgatást és még a tárigény is kisebb lesz. Ha nem tiszta a kód amit írtam, javaslom magyaráztasd el valakivel.
(Ui.: Ha string.h-t nem használhatsz, akkor strlen helyett neked kell kézzel megnézned a sztring hosszát.)
[ Szerkesztve ]
Új hozzászólás Aktív témák
- LG OLED65G39LA 2 Év GYÁRI GARANCIA !!
- Godox Litemons LA200D 5600K LED lámpa
- Fujitsu Lifebook S752, 14" HD, I3-2348M CPU, 8GB RAM, 500GB HDD, WIN 10, Számla, Garancia
- Fujitsu Lifebook A532, 15,6" HD, I5-3230M CPU, 8GB RAM, 500GB HDD, WIN 10, Számla, Garancia
- Fujitsu Lifebook A530, 15,6 HD, I3-380M CPU, 4GB RAM, 250GB HDD, WIN 10, Számla, Garancia
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen