문자열 분리.
strtok, strtok_s
기존에 문자열 분리에 사용되던 strtok 은 첫 인자로 대상 문자열,
두 번째 인자로 분리에 기준이 되는 문자를 넣으면 되었다. 즉,
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-");
}
return 0;
}
이런식으로, 사용하면 되었는데...
VS 2005부터 CRT라이브러리의 문자열을 다루는 함수의 안정성에 많은 신경을 쓰면서
기존의 문자열에 _s 를 붙이는 안전함수를 제공하고 있다. 해서 이 함수를 사용하지
않으면 위의 warning가 발생하게 된다.
strtok_s 의 사용법은 처음에는 좀 적응이 안되었는데. 다음과 같다.
int main ()
{
char str[] ="- 예제, 문자열 분리, 홍길동";
char * context = NULL;
char * token = strtok_s(str, ",", &context); // context에는 분리된 후 남은 문자열이 들어간다.
printf ("분리된 문자열은 \"%s\" 이다:\n",token);
pch = strtok (str," ,.-");
while (token)
{
token = strtok_s(NULL, ",", &context);
printf ("%s\n",token);
}
return 0;
}
이렇다.
'etc' 카테고리의 다른 글
[C++] 메모리 가시성과 메모리 장벽 (2) | 2015.07.29 |
---|---|
[C++] Explicit 의미 (0) | 2013.05.10 |
[Network] IRC구조 (0) | 2013.02.22 |
[C++] warning C4996 (0) | 2013.02.21 |
[SVN] tortoise svn branch merge (0) | 2013.02.13 |