#include #include // zoek en vervang een gedeelte van een string const len = 120; void zoek_en_vervang(char *zin, char * find, char * replace); void main() { char zin[len], zoekstr[len], vervangstr[len]; // lees zin in cout << "typ een zin, eindig met Enter : " << endl; cin.getline(zin,len); // zoek en vervangwaarden cout << "zoek : "; cin.getline(zoekstr,len); cout << "vervang : "; cin.getline(vervangstr,len); // nieuwe zin opbouwen zoek_en_vervang(zin,zoekstr,vervangstr); cout << "\nresultaat\n\n " << zin << endl; } void zoek_en_vervang(char *zin, char * find, char * replace) { char buffer[len] = ""; // tijdelijke string om zin op te bouwen char * poszin = zin; // positie in zin char * posbuf = buffer; // positie in buffer //zoek in zin for (int i = 0; i < (strlen(zin)-strlen(find));i++) { if(_strnicmp(zin, find, strlen(find))==0) {// Als de zoekstring wel op deze plaats voorkomt // Zet de vervang-string in de buffer strcat( buffer, replace ); // Verplaats de pointer naar de zin over de zoekstring heen poszin += strlen(find); // Verplaats de pointer naar de buffer over de vervangstring heen posbuf += strlen(replace); } else {// Zo nee, //kopieer een character van de zin naar de buffer *posbuf = *poszin; // schuif beide pointers een posititie op poszin++; posbuf++; // Sluit de sting in de buffer al af met een nul-character, //dit wordt eventueel overschreven als er nog dingen toegevoegd worden *posbuf = '\0'; } } // Kopieer tenslotte de buffer terug naar de zin strcpy( zin, buffer ); }