Ho scritto in C una funzione simile alla String.Replace() di C#: purtroppo la libreria standard del linguaggio C non fornisce tale funzionalità che quindi va implementata in proprio.
Come prototipo ho deciso di utilizzare qualcosa del genere:
int StrReplace(char *str, int maxstr, char *pattern, char *replace);
dove str è la stringa da modificare, maxstr la dimensione allocata per tale stringa, pattern la stringa da ricercare e replace la stringa da utilizzare in sostituzione.
La String.Replace() di C# sostituisce tutte le occorrenze che trova mentre la mia funzione, per semplicità, si limita alla prima occorrenza. Per lavorare come la String.Replace() è possibile sfruttare il valore di ritorno che sarà 1 nel caso di sostituzione avvenuta o 0 se non c'è stata alcuna sostituzione (o <0 in caso di errore), permettendoci quindi di scrivere
while( StrReplace(...) == 1 ) {};
Qui di seguito presento il codice completo e le spiegazioni.