>> Edit article
이름
제목
패스워드
: 위에 상수배열부분과 변수배열부분으로 보낸걸 비교해서 찍었는데요. : 두 결과값이 다르거든요? 왜그렇죠??? 정말 이해가 안갑니다. 라고 하셨는데.. 두 결과값이 어떻게 다른가요? 그리고 님께서 말씀하신 "변수배열"이란 문자열의 포인터값(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