[C언어]문자열에서 특정 문자열 추출 하기

2014. 1. 1. 23:512018년 이전 관심사/개발관련

반응형

문자열에서 특정 문자열 추출 하기

char *index  (char *str1, char ch) 는 문자열 str1을 처음부터 검색하여 ch 문자를 찾아 포인터를 리턴 한다.

char *rindex (char *str1, char ch) 는 문자열 str1을 뒤부터 검색하여 ch 문자를 찾아 포인터를 리턴 한다.


문자열을 찾지 못하면 NULL을 리턴한다.



위 함수를 사용한 예제는 아래와 같습니다. ( 아래 예제는 forum.falinux.com 에서 사용한 예제를 참고 하였습니다. )


#include <string.h>

#include <stdio.h>


int main()

{

char data[] = "[Connect 0]";

char *sp, *dp;

char mydata[100] = {0x00,};


sp = index(data,' ');

dp = rindex(data,']');


strncpy(mydata, sp+1, dp-sp-1);

printf("[%s]\r\n",mydata);

}


결과는

[0]

입니다.



저는 위와 동일한 동작을 AVR 기반의 Arduino MCU에서 수행하려고 하니, AVR 라이브러리에는 index()와 rindex() 함수를 이용 할 수 없었습니다. 때문에 저는 아래와 같이 사용 하였습니다.


#include <string.h>

#include <stdio.h>


int main()

{

char data[] = "[Connect 0]";

char *sp, *dp;

char mydata[100] = {0x00,};


sp = strstr(data," ");

dp = strstr(data,']');


strncpy(mydata, sp+1, dp-sp-1);

printf("[%s]\r\n",mydata);

}


결과는

[0]

입니다.



반응형