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

등록 2002-01-06 19:06:00 By localhost     조회 1
이름 ret    

		: 위에 상수배열부분과 변수배열부분으로 보낸걸 비교해서 찍었는데요.
: 두 결과값이 다르거든요? 왜그렇죠??? 정말 이해가 안갑니다.
 라고 하셨는데.. 두 결과값이 어떻게 다른가요?
 그리고 님께서 말씀하신 "변수배열"이란 문자열의 포인터값(char* url)을 지
칭하는 건가요?
 :         url = new char(MAXLINE);
 또 윗 부분은 url = new char[MAXLINE] 처럼 대괄호를 써줘야 하는 건 아닌
지.. (이 부분은 제가 Unix C++를 잘 몰라서 자신이 없네요)
 수고스럽겠습니다만 실행 결과를 다시 한번 올려주세요.
   ////////////////////////////////////////////////////////////////////
   : 자바 배우고 다시 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://www.linux-site.net/somewebsite", 
80);
: }
: 
: 위에 상수배열부분과 변수배열부분으로 
보낸걸 비교해서 찍었는데요.
: 
: 두 결과값이 다르거든요? 왜그렇죠??? 정말 이해가 안갑
니다. 자세히보면
요. 변수로 넘겨준건 넘겨줄때부터 처음부터 완전히 subString함수로 안넘

어 오는데 왜그런겁니까??? 저 좀 도와주세요.
: 
: ps. JAVA처럼 C++에서도 subString 구현해주는 
함수 있나요?
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

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