Вы можете использовать следующую функцию:
char *chngChar (char *str, char oldChar, char newChar) {
char *strPtr = str;
while ((strPtr = strchr (strPtr, oldChar)) != NULL)
*strPtr++ = newChar;
return str;
}
Она просто перебирает строку в поисках определенного символа и заменяет ее новым символом.Каждый раз через (как и у вас) он начинается с адреса, выходящего за пределы предыдущего символа, чтобы не перепроверять символы, которые уже были проверены.
Он также возвращает адрес строки, часто используемый приемтак что вы также можете использовать возвращаемое значение, например, с:
printf ("%s\n", chngChar (myName, 'p', 'P'));