1
MyString이라는 자체 String 클래스를 만들려고합니다. 몇 가지 문자열 조작 함수가 있습니다. 모두 삽입 기능을 제외하고 모두 작동합니다. Insert 함수를 여러 번 사용하면 프로그램이 충돌합니다 (source.exe가 작동을 멈췄습니다). 저는 현재 Dev C++를 사용하고 있습니다.사용자 정의 char * insert 함수가 여러 번 실행될 때 런타임 오류를 발생합니다.
char * MyString::substr(int position, int length) {
char* otherString = 0;
otherString = (char*)malloc(length + 1);
memcpy(otherString, &this->getptr()[position], length);
otherString[length] = 0;
return otherString;
}
매개 변수화 된 생성자 (숯불 *의 PTR 개인 멤버) :
MyString::MyString(char* str){
int size = strlen(str);
ptr = new char[size];
ptr = str;
}
나는 다음과 같은 경우 많은
MyString MyString::insert(MyString s2, int pos) {
int size = strlen(this->getptr());
if(pos > size || pos < 0){
return "Error";
}
char * ptrLeft = this->substr(0, pos);
char * ptrRight = this->substr(pos, size - pos);
strcat(ptrLeft, s2.getptr());
strcat(ptrLeft, ptrRight);
return ptrLeft;
}
이
은 MyString의 클래스에서 SUBSTR() 함수 시간, 그것은 때로는 충돌합니다.buff = buff.insert(" Text", 5);
cout << buff;
system("PAUSE");
buff = buff.insert(" Text", 5);
cout << buff;
system("PAUSE");
감사합니다. 완벽하게 작동합니다! –