Razdvoji nisku!
Napisati funkciju koja razdvaja nisku na dve niske pri prvom pojavljivanju datog karaktera.
Ulaz
Sa standardnog ulaza se unosi karakter
Izlaz
Na standardni izlaz ispisati obe niske nakon razdvajanja, ukoliko nije moguće razdvojiti na dve niske (odnosno, razdvajač se ne nalazi u niski sa ulaza) ispisati originalnu nisku.
Primer
Ulaz
,
Zdravo,svete!
Izlaz
Zdravo
svete!
Primer
Ulaz
,
Zdravo,svete,cvete!
Izlaz
Zdravo
svete,cvete!
Primer
Ulaz
?
Zdravo,svete,cvete!
Izlaz
Zdravo,svete,cvete!
Rešenje
main.c
#include <stdio.h>
#define MAX_LENGTH 100
int split_once(const char *str, char delim, char **left, char **right)
{
*left = str;
for (char *p = str; *p != '\0'; p++) {
if (*p == delim) {
*p = '\0';
*right = p + 1;
return 1;
}
if (*(p + 1) == '\0') {
*right = NULL;
return 0;
}
}
}
int main(void)
{
int delimiter;
scanf("%c\n", &delimiter);
char str[MAX_LENGTH + 1];
scanf("%s", str);
char *left, *right;
if (split_once(str, delimiter, &left, &right)) {
printf("%s\n", left);
printf("%s\n", right);
} else {
printf("%s\n", left);
}
return 0;
}