Razdvoji nisku!

Napisati funkciju koja razdvaja nisku na dve niske pri prvom pojavljivanju datog karaktera.

Ulaz

Sa standardnog ulaza se unosi karakter $c$ (razdvajač), a zatim i niska koju treba razdvojiti (dužine ne veće od $100$).

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;
}