Kezdőoldal » Számítástechnika » Programozás » Szöveg kezelés, cserélés...

Szöveg kezelés, cserélés C-ben? (lent)

Figyelt kérdés

Bemásolom a feladatot,

Írj olyan programot, ami beolvas a szoveg.txt fájlból egy szöveget (amiben szóközök is szerepelhetnek, de nem hosszabb mint 100 karakter). Ezután a program bekér egy szót a felhasználótól (ez a szó nem hosszabb mint 10 karakter). A program írja a képernyőre a fájlból beolvasott szöveget úgy átalakítva, hogy abban a felhasználótól bekért szöveg minden előfordulása helyett ! karaktereket ír ki.

Példa 1.:

// A program a fájlból beolvasta a következő szöveget: Unix is simple. It just takes a genius to understand its simplicity.

Adja meg az átalakításhoz szükséges karakter sorozatot:

impl

->

Unix is s!!!!e. It just takes a genius to understand its s!!!!icity.

Példa 2.:

// A program a fájlból beolvasta a következő szöveget:A bamba baba babba bambul.

Adja meg az átalakításhoz szükséges karakter sorozatot:

ba

->

A !!m!! !!!! !!b!! !!mbul.


2013. ápr. 11. 13:50
 1/3 A kérdező kommentje:

Már elkezdtem megírni, de pont a lényeget nem tudom. Szerintem strstr függvényt kellene használni, de hogyan azt nem tudom. Egy mutatóval tér vissza ez a fv?

Ennyit írtam, csak az alapok:

#include<stdio.h>

#include<string.h>

int manin(){

FILE *be;

char szo[11],szoveg[101];

be=fopen("bemenet.txt","r");

while(!feof(be))

fscanf(be,"%s",szoveg);

fclose(be);

printf("Adja meg az átalakításhoz szükséges karakter sorozatot:\n");

scanf("%s",szo);

.

.

.

printf("%s",szoveg);

return 0;}

2013. ápr. 11. 13:55
 2/3 iostream ***** válasza:

char* tmp = szoveg;

while (tmp = strstr(tmp, szo))

{

//tmp-től strlen(szo)-nyi karaktert kicserélsz !-re

}

2013. ápr. 11. 15:30
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Próbáltam megcsinálni, de nem sikerült, nem működik a program. A megoldás lehet hogy egyszerű, csak én akartam túl bonyolítani. Ebben szeretnék segítséget kérni, hogy több karaktert is kicseréljen '!'-re.

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int main(){

FILE *be;

char *cp;

char szo[11],szoveg[101];

be=fopen("bemenet.txt","r");

fgets(szoveg,sizeof(szoveg),be);

szoveg[strlen(szoveg)-1]='\0';

fclose(be);

printf("Adja meg az atalakitashoz szukseges karakter sorozatot:\n");

scanf("%s",szo);

cp=&szoveg;

while(cp=strstr(szoveg,szo)){

*cp='!';

}

printf("->\n%s\n",szoveg);

return 0;

}

2013. ápr. 12. 19:14

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!