728x90
반응형
임베디드 업계에서 문자열 파싱을 통해 시각화를 구현해야한다.
그러기 위해선 로그데이터를 제대로 분석해야한다.
문자열로 이루어진 로그데이터를 가공하고 차트화하기 위해 문자열 함수를 배울 필요가 있다.
임베디드에선 파싱을 위해 주로 string.h 헤더파일 내에 있는 함수를 이용한다.
#include <string.h>
strlen
문자열의 길이 구하는 함수
char str[10]="hello";
int len=strlen(str);
printf("%d",len); // 5 출력됨
strcpy
문자열 복사
char str[10]="hello";
char temp[10];
strcpy(temp,str); //str이 temp에 복사됨
printf("%s",temp); //hello 출력
strncpy
일정 길이만큼 문자열 복사
char str[10]="hello";
char temp[10];
strncpy(temp,str,4);
temp[4]='\0';
printf("%s",temp); // hell 출력됨
strncpy를 이용시 복사할 단어를 중간에 잘라서 복사할때 주의해야한다.
잘라서 복사를 하게되면 마지막 '\0' 복사가 되지 않기 때문에 단어의 끝맺음을 알 수 없다.
쓰레기 값이 붙어서 나오는 것을 방지하기 위해서 따로 '\0'를 추가해 주어야한다.
strcat
문자열 붙히기
char str[10]="hello";
strcat(str," hi");
printf("%s",str);
strcmp
문자열 비교
char str[10]="hello";
printf("%d ",strcmp(str,"apple")); // 1 출력
printf("%d ",strcmp(str,"hello")); // 0 출력
printf("%d",strcmp(str,"zebra")); // -1 출력
문자열 사전순 기준에 따라 -1, 0, 1로 출력된다.
동일한 문자열일때는 0이 출력된다.
atoi
숫자인 문자열을 정수형으로 바꾸기
int a = atoi("12");
int b = atoi("34");
printf("%d ",a); // 12 출력
printf("%d",a+b); // 46 출력
728x90
반응형
'임베디드' 카테고리의 다른 글
[C언어] Byte / Bit 단위 데이터 파싱 (0) | 2022.04.12 |
---|---|
[C언어] 문자열 파싱 2 - sscanf sprintf strtok strchar strstr strtol (0) | 2022.04.11 |
[비트연산] 특정 위치 비트 set / clear / 반전 (0) | 2022.04.09 |
[C언어] 자료형 : float, double, 부동소수점, 고정길이정수 (0) | 2022.04.08 |
[메모리] 2의 보수와 음수 처리 / 2의 보수 쓰는 이유 (0) | 2022.04.06 |