|
위에 두 분이 답변하신 것을 섞어서.. 이렇게 하면... 될까요 ?
char *s, *result ;
char str[] = "Hello world~!" ;
// 우선 'world'로 시작하는 스트링을 만들어내고...
s = strstr(str, "world") ;
// result 에는 'world' size만큼의 공간을 배정하고..
result = new char[5] ;
// 그 스트링에서 'world'의 사이즈만큼만 result로 빼내면 될듯..
strncpy( result, s, 5*sizeof(char) ) ;
(오래간만에... 적으려니 문법도 생각 안나고.. 아... 위의것에 오류가 있어도... 그냥...)
그런데, 적고 나니.. 의문...
원래 문장에서 'world'를 왜 추출해야 하는지..
원문장에서 'world'를 추출해서 'world'라는 스트링을 만들것이라면 그냥
'world'스트링을 만들어주면 되지 않는지.. ?
혹시 'world'의 시작, 끝위치를 알고 싶거나.. 혹은 원문장에서 월드의 존재여부를
찾고 싶은 것인지....
좀 더 정확하게,,, 어떤 경우에 쓰시려는지 올려주시면 고수님들이 더 좋은 답변을 해 주실듯..
: 안녕하세요? 개박살입니다.
:
: strncpy를 이용해서 할수 있는 작업입니다.
:
: strcpy함수들의 원리는 단지 시작 포인터번지를 넘겨주는 역할이죠? 그걸 이용해서
:
: char string[10];
: char *str1 = "Hello world~!";
:
: strncpy(string, &str1[6], 5);
: string[5] = '\0';
:
: ShowMessage(string);
:
: 이런식으로 하시면, &str[6] 이 world의 w 시작점이니가 가능하죠
:
: 꽁수였네요 ^^;
:
: 시작점을 아규먼트로 주는 표준함수는 없는걸로 알고있습니다.
:
: 그럼 참고하세요~~
:
: 이학균 님이 쓰신 글 :
: :
: : strcpy와 strncpy같이 문자열 복사함수 중에 시작 배열을 정할 수 있는 함수가 없을까요?
: :
: : 그러니간..
: :
: : char str[] = "Hello world~!";
: : 에서 world만을 추출하고 싶은데 그런 함수는 없을까요?
: : 일일이 하드 코딩으로 배열로 저장해 줘야 되나요?
: :
: : 부탁드려요
: :
|