manipolare array di char

si, e' vero, di nuovo un post sulle stringhe, ma nonostante abbia cercato non ho trovato la soluzione:

ho un array di schar che contiene un URL, un esempio puo essere :

'/pagina.html?pippo=1&pluto=2'

vorrei riuscire ad estrarre pagina.html e memorizzarla in una variabile String. il codice che finora ho prodotto, fino a dove funziona, e' questo:

separatore=strchr(url,'?');
strncpy(pageName,url,separatore-url);

dove url = "/gianni.htm?pippo=1&pluto=2"

ho provato a stampare pageName (l'ho stampata in una pagina web con webduino) e viene fuori

/gianni.htmo5B "?"r

Dopo la 'm' di 'htm' cominciano simboli e lettere strane, che ad ogni refresh della pagina cambiano. Ho letto che le stringhe vanno terminate con il carattere '\0' ma non capisco se lo devo mettere io o no, e che carattere devo mettere (\0 sono due caratteri). C'e un modo di estrarre una sottostringa da un array di char e salvarla in una sariabile di tipo String?

stavo cercando di testare il codice ma ho qualche problema con la strncpy, comunque '\0' viene interpretato come un carattere significa il byte 0 puoi tranquillamente aggiungerlo alla tua stringa per fare una prova

per estrarre una sottostringa utilizzando il tipo String puoi usare il metodo substring (però anche la sorgente deve essere di tipo String)

strncpy(pageName,url,separatore-url);

???

forse intendi

strncpy(pageName,url,strlen(url)-separatore);

dovre strlen() è una funzione di string.h che ritorna la lunghezza di una stringa

edit:
comuqnue come detto da ale92, basta mette il carattere di fine stringa al posto del ?

url[separatore]='\0';