====== 8 - Textové řetězce 1/2 ======
$ echo "Pastrnak dal proti Floride opet gol." > pasta.in
$ gcc string.c
$ ./a.out < pasta.in
#include
#include
#include
void replace_char (char *dest, char a, char b)
{
int L = strlen (dest);
for (int i = 0; i < L; i++)
if (*(dest+i) == a) *(dest+i) = b;
}
void replace_string (char *dest, char *a, char *b)
{
int L1 = strlen (dest);
int L2 = strlen (a);
int i, j;
for (i = 0; i < L1 - L2; i++)
{
for (j = 0; j < L2; j++)
{
if (*(dest + i + j) != *(a+j))
break;
}
if (j == L2)
memcpy (dest + i, b, L2);
}
}
void switch_caps (char *dest)
{
char *b = dest;
int L = strlen(dest);
for (int i = 0; i < L; i++, b++)
{
if((*b >= 'a' && *b <= 'z') || (*b >= 'A' && *b <= 'Z'))
{
*b ^= 1 << 5;
}
}
}
int main (void)
{
char *a = malloc (100);
scanf ("%[^\n]", a);
printf ("%s\n", a);
replace_char (a, 'o', 'x');
printf ("%s\n", a);
replace_string (a, "xpet", "XXXX");
printf ("%s\n", a);
switch_caps (a);
printf ("%s\n", a);
return 0;
}