Большинство модулей, которые я нашел в Интернете, заменят только первое вхождение этой строки. Но я хочу модуль, который будет искать каждое вхождение и заменит эту строку. Я нашел код в переполнении стека, который был очень утомительным, поэтому я не смотрю на него. И среда, в которой я работаю, поддерживает только компилятор C. Поэтому комментарии к настройкам команд C++ не оцениваются. Это до тех пор, пока я пришел. Он все еще бросает мне ошибки. Любая помощь приветствуется.Строка заменит несколько случаев в C
#include <stdio.h>
#include <string.h>
char *replace_str(char *str, char *orig, char *rep)
{
char *buffer;
char *p, *work;
while(strstr(str,orig))
{
p = strstr(str, orig);
strncpy(work, str, p-str);
strcat(buffer, work);
//strncpy(buffer+strlen(buffer), str, p-str);
strcat(buffer, rep);
p+=strlen(orig);
str = p;
}
return strcat(buffer,p);
}
int main(void)
{
puts(replace_str("Hello, Kate! I once had a cat named Kate! ", "Kate", "Paul"));
return 0;
}
* Я нашел код в переполнении стека, который был очень утомительным, поэтому я не рассматриваю его * Не самый конструктивный подход. Если мы ответим, как мы узнаем, будет ли это слишком сложно для вас? – cnicutar
Покажите мне «утомительный» код, и если я соглашусь с вами на его «утомительность», я отвечу на ваш вопрос. –
@cnicutar: Очень верно. Просто, утром 5 утра, а чем проще код, тем легче логика. Потому что этот код, который я делаю, придется кому-то отредактировать, когда-нибудь. И я не хочу, чтобы тот же человек думал так, что код слишком велик, чтобы отлаживать. Извините, если бы я был пустым на этом. Просто казалось справедливым, чтобы быть правдой. –