string class 를 c++로 만드는 중임.
거의 다 구현했는데 substr에서 문제가 생김. substr(int index, int length)
비효율정인 방법 예를들어 1.정적변수 사용 2.substr에 main에서 인자를 만들어 매개변수로 넣어주기 3.substr 내부에서 동적할당으로 변수를 만들어서 리턴해서 사용하고 main에서 해제하기. 이런방법으로는 얼마든지 구현가능하고 인터넷에도 이런 예제 밖에 없는데 내가 원하는건 위의 방법이 아닌 방법임. 효율적인 방법.
근데 벌써 4일째 고민중인데 모르겠음. 알려주라.
복사생성자로 리턴하면 된다였나? 몰겠다. substr 구현좀 해줘. 혼자 고민은 충분히 했음. 계속 재자리라 도움구한다
StaticString::StaticString(const StaticString& _str) //복사생성자
{
_length = (strlen(_str._data) + 1);
_data = new char[_length];
strcpy(_data, _str._data);
}
StaticString StaticString::substr(int index, int length)
{
}/
복사생성자는 별개고 어찌됐건간에 substr는 짤라내주는거잖아?
응
StaticString 변수를 만들고 strncpy나 memmove 같은걸로 필요한만큼 옮겨서 return 하려고하는데 return때 지역변수라 삭제되서 리턴이 NULL로 리턴되서...
근데 동적할당 안하고는 어케 리턴해야 값 전달을 할지 도무지 모르겠음..
예로 apple에서 1번부터 길이 3만큼 짤라준다 그러면 ppl이겠지? for문으로 string 지역변수 생성해서 += 시작을 index부터 length보다 같거나 작을때까지 해주는 수밖에 없음
클래스 변수라던가 메인 지역변수라면 매개변수로 보내주는수밖에 없음
메게 변수로 보내줘야하면 인자 더 만들어야해?
ㅇㅇ string 포인터나 레퍼런스로 받으면 되겠지.아니면 클래스 변수 선언해서 하던가
너무 복잡하게 생각할 필요없어 그리고 메모리관련 함수도 예외처리 해줘야할것들이 많거든? 까딱하다간 프로그램 뻥난다
음.. 답변해줘서 정말 고마워. 일단 너가 말해준 포인터랑 레퍼런스로 해볼게! 감사감사
상위 1% 개족고수
초보초보