>> Delete No. 38938 article
No. C++로 자바의 subString method구현할려구 하는데요.
잘안되여...

등록 2002-01-06 16:34:00 By localhost     조회 2
이름 영태    

		자바 배우고 다시 C++로 돌아왔는데요. 정말 힘드네요 ㅜ.ㅜ
 무엇이 문제인지 도통 모르겠습니다. 자바처럼 뭐가 잘못되었는지도 확실히 찍어주지도 
않고... 후~~~~~~~  이 소스좀 봐주세요~ 정말 부탁드립니다. 이것때문에 정말 엄청 삽질했네
요.  #include <stdio.h>
#include <string.h>
#define MAXSTRING	1024
#define MAXLINE		1024
class tmp {
       private:
                char *hostName;
                char *url;
                char *filePath;
                char *fileName;
                 /* Action : url로 부터 hostname 과 file path를 분리한다. */
                void splitHostnFile();
                /* Action : fullstring을 받아들여 원하는 index를 짤라준다. */
               char *subString(const char *original, int indexBegin, int indexFinish);
        public:
               /* 생성자 */
               tmp(char *, int);
};
tmp::tmp(char *fullstring, int portNumber) {
        url = new char(MAXLINE);
        strncpy(url, fullstring, 100);
        printf("url = %s", url);
        splitHostnFile();
}
void tmp::splitHostnFile() {
        int jump, i;
        jump = 0;
        if(strstr(url, "http://") != NULL) {
                jump = 7;
        } else if(strstr(url, "ftp://") != NULL) {
                jump = 6;
        }
         // find hostName in url
        i = jump;
        while( *(url+ i) != '/')
                i++;          // i 는 '/'의 자리를 가르키고 있다.
        printf("splitHostnFile url = %s", url);
        hostName = subString("http://www.linux-site.net/somewebsite", jump, i-1);          //------> 이곳 : 
이부분은 상수배열로 보냈구요.          printf("splitHostnFile url = %s", url);
        filePath = subString(url, jump, i-1); //---->이곳 : 이부분은 변수배열로보냈습니다.
}
char *tmp::subString(const char *original, int indexBegin, int indexFinish) {
        char *returnString = new char(MAXSTRING);
        int i, indexReturn;
        indexReturn = 0;
        printf("original = %s", original);
        for( i = indexBegin; i < indexFinish + 1; i++) {
                *(returnString + indexReturn) = *(original + i);
                indexReturn++;
        }
        *(returnString + indexReturn) = '';		// null
         printf("i = %d, indexReturn = %d , return = %s", 
i, indexReturn, returnString);
        return returnString;
}
 int main(){
        tmp *ptmp = new tmp("http://w
ww.linux-site.net/somewebsite", 80);
}
 위에 상수배열부분과 변수배열부분으로 보낸걸 비교해서 찍
었는데요.
 두 결과값이 다르거든요? 왜그렇죠??? 정말 이해가 안갑니다. 자세히보면요. 변
수로 넘겨준건 넘겨줄때부터 처음부터 완전히 subString함수로 안넘어 오는데 왜그런겁니까?
?? 저 좀 도와주세요.
 ps. JAVA처럼 C++에서도 subString 구현해주는 함수 있나요?
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved