Ваша задача не совсем понятна.Если вы ТОЛЬКО хотите продублировать обратную косую черту, и это чистый C и у вас нет широких символов (то есть только ASCII), то вы можете сделать что-то вродеобратные косые.Чтобы заменить расширение, для простоты, вы можете определить расширение, используя int len = strlen(str);
(может быть так же просто, как проверить последние символы в str
).После этого вы можете заменить условие while
на while(p - str < len - 3)
, а затем strcat(target, "doc");