Andrew wrote: > void search_replace(char *string, const char *find, const char *replace) > { > char final[MAX_INPUT_LENGTH]; Are you sure final[] isn't being overflowed? > size_t start, end, i; > > while (strstr(string, find) != NULL) { > > start = strstr(string, find) - string; > end = start + strlen(find); > > for (i = 0; i < start; i++) > final[i] = string[i]; > > strcat(final, replace); > > for (i = end; i < strlen(string); i++) > final[i] = string[i]; Here's your problem! string[strlen(string)] is the null char that terminates the string--but your loop stops at string[strlen(string)-1], so you have an unterminated string in final[] > > sprintf(string, final); Here's another potential crasher. If final contains any "%" characters, they will be interpreted as format specifiers. > } > return; > } -- http://www.classic-games.com/ If you commit perjury, you go to jail... Is the President of the United States above the law? If so, what was the American Revolution about? *** NEWBIES: Limit signatures to four lines! No HTML mail or posts! *** +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST