Szöveg kezelés, cserélés C-ben? (lent)
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.
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;}
char* tmp = szoveg;
while (tmp = strstr(tmp, szo))
{
//tmp-től strlen(szo)-nyi karaktert kicserélsz !-re
}
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;
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!