정리중...
< strstr >
strstr은 문자열 중에서 특정 문구를 찾아 그 위치를 반환해 주는 함수
특히, 포함된 문자열을 찾는데 유용하다. (strcmp 를 사용하면 안된다 !!)
/*strstr */
char * strstr(const char * str1, const char * str2);
참조 : http://tapito.tistory.com/313
1. strcat
- strcat (string concatenation)은 문자열 2개를 이어 붙이는 역할을 해주는 함수이다. 예컨대, "Love"와 "You"를 합치면 LoveYou가 될 것이다. 이처럼 두개의 문자열을 합쳐주는 함수가 strcat 이다. 이 함수의 사용방법과 내부적인 결과를 자세히 살펴보자. 먼저 함수의 모양을 알아보자.
함수 원형 | char* strcat ( char* dest, char* src ); |
dest | src를 붙이는 문자열 |
src | dest에 붙여지는 문자열 |
반환값(return) | 성공시 dest, 실패시 NULL |
[출처] C언어 문자열 붙이기( strcat )|작성자 SLL
참조 : http://blog.naver.com/sharonichoya/220513447408
< strtok >
A 문자열을 B문자열에서 주어진 기준대로 잘라줍니다. (정확히는 NULL 로 치환합니다.)
이함수는 굉장히 독특한 함수입니다.
최초 호출시에만 첫번째 파라미터에 buffer 를 넣어주고, 이후에는 NULL 을 넣어주면 연속으로 동작하게 됩니다.
자세한 설명 : http://tapito.tistory.com/314
"Rachel;Tom-John&Michael@Jude"
를 입력하고
두번째 파라미터에 ";-&@"
문자열을 준후
연속으로 4번을 호출하면 각각 호출시마다
Rachel
Tom-John
Michael
Jude
를 출력하게 됩니다.
중간에 치환된 <NULL> 이 각 문자열의 끝으로 인식됩니다.
example) 아래와 같이 연속 호출 가능
char* token = strtok(cline, "\n\t"); // cline : 진짜 문자열
const char* type = strtok(nullptr, "\n\t");
int i = strtol(strtok(nullptr, "\n\t"), nullptr, 10);
const char* type = strtok(nullptr, "\n\t");
< strdup >
원문 : http://blog.naver.com/ratmsma/40023807578
--------------------------------------------------------------------------------
1. 사용법
#include <string.h>
char *strdup(const char *S);
--------------------------------------------------------------------------------
2. 설명
strdup() 함수는 문자S 를 복사하고 복사된 문자열을 가리키는 포인터를 반환한다. 문자를 복사할 공간을 확보하기 위해서 내부적으로 malloc(3)이 호출된다. 그러므로 strdup() 함수를 호출해서 문자열 복사를 했다면 free(3) 등을 통해서 공간이 필요없게 되었을때 커널에 되돌려주어야 한다.
--------------------------------------------------------------------------------
3. 반환값
복사된 문자열의 주소를 가리키는 포인터를 반환한다. 에러발생시에는 NULL 을 되돌려준다.
--------------------------------------------------------------------------------
4. 에러
ENOMEM
복사할 문자열을 할당하기 위해 이용할수 있는 메모리가 충분하지 않다.
--------------------------------------------------------------------------------
5. 예제
#include <string.h>
int main()
{
char *line = "hello world!";
char *dupstr = NULL;
dupstr = strdup (line);
printf("%s\n", dupstr);
free(dupstr);
}
< strtol >
원문 : http://forum.falinux.com/zbxe/?mid=C_LIB&page=9&document_srl=408138
설명
숫자 문자열을 long형 숫자로 변환합니다. atoi()나 atol()과는 달리 (1) 변환하려는 진수를 선택할 수 있으며, (2) 숫자 문자가 아닌 문자를 만나면 그 포인터 위치를 구해 줍니다.
예로, "2007forum.falinux.com" 을 호출하게 되면,
char *str; char *ptr; long value; str = "2007forum.falinux.com"; value = strtol( str, &ptr, 10);
- value에는 2007이 들어 가고
- ptr에는 숫자로 변화하지 못하는 문자열의 시작 위치를 구해 줍니다.
만약 NULL을 넘겨주면 시작 위치를 구하지 않습니다.
헤더 | stdlib.h | |||||||
형태 | long strtol(const char *restrict str, char **endptr, int base); | |||||||
인수 |
| |||||||
반환 |
|
'Programming > Linux_Platform' 카테고리의 다른 글
fstab & partition images (0) | 2015.10.19 |
---|---|
linux command : stat, fstat, lstat (0) | 2015.10.19 |
epoll 에 대한 한국어 설명 (0) | 2015.10.19 |
close_on_exec (0) | 2015.10.19 |
socketpair() (0) | 2015.10.19 |