Ahojte,
Mam menší problém.
Vytvoril som kód, ktorý mi najprv načíta dva reťazce a potom všetky výskyty druhého reťazca v prvom vymaže. Všetko funguje až na jednu malú vec. Ak zadám menej ako 50 znakov tak druhý reťazec v pohode načíta na ďalšom riadku ale ak zadám viacej ako 50 znakov tak ono si to automaticky zoberie ďalšie 3 písmena z reťazca a berie to ako by som zadal ja ten druhý reťazec. Takže otázka je: Ako mám donútiť ten program aby na jeden riadok načítal prvý reťazec a na druhý riadok druhý reťazec s tým, že ak zadám viacej ako 50 znakov tak si to nezoberie automaticky? Predom Ďakujem.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char retazec[51], podretazec[4], novy_retazec[51];
int i = 0, j = 0;
fgets(retazec, 51, stdin);
int buffer = strlen(retazec) - 1;
if ((buffer > 0) && (retazec[buffer] == '\n')) retazec[buffer] = '\0';
fgets(podretazec, 4, stdin);
buffer = strlen(podretazec) - 1;
if ((buffer > 0) && (podretazec[buffer] == '\n')) podretazec[buffer] = '\0';
while (retazec[i] != '\0')
{
if ((retazec[i] == podretazec[0]) && (retazec[i + 1] == podretazec[1]) && (retazec[i + 2] == podretazec[2])) i += 3;
else
{
novy_retazec[j] = retazec[i];
j++;
i++;
}
}
novy_retazec[j] = '\0';
puts(novy_retazec);
system("PAUSE");
return 0;
}