Добрый день. У меня возникла следующая проблема: я написал программу кот-ая удаляет все подстроки из строки, она работает нормально до того момента пока я не ввиду подстроку идентичную строке, в "output" выводится "Borland C++ - Copyright 1991 Borland Intl.", и после этого прога не работает даже для тех случаев для кот-ых работала раньше, помогите пожалуйста разобраться в чём проблема. Вот код:
| Код |
#include <fstream.h> #include <string.h> #include <stdio.h>
ifstream input("input.txt", ios::in); ofstream output("output.txt", ios::out);
void delete_str(char* str1, char* str2, char* str3) { char *ptr = NULL;
str3[0] = '\0';
while ( ptr != strstr(str1, str2)) { ptr=strstr(str1,str2); strncat(str3, str1, ptr - str1); str1 = ptr + strlen(str2); }
strcat(str3, str1);
output<<"obrazovannaya stroka:"<<endl<<str3;
}
int main() {
char str3[256]; char str1[256], str2[256];
input>>str1; output<<"izhodnaya stroka:"<<endl<<str1<<endl; input>>str2; output<<"izhodnaya podstroka:"<<endl<<str2<<endl;
delete_str(str1,str2,str3);
return 0; }
|
|