String API

GAON PARK·2023년 11월 14일
0
post-custom-banner

C언어를 사용하면서 자주 사용한다고 생각되는 API를 모아 정리했다.

strlen()

문자열 길이

char vect[10] = "ABCDEFG";
printf("%d ", strlen(vect)); // 7
printf("%d ", strlen(&vect[0])); // 7
printf("%d ", strlen(&vect[2])); // 5
printf("%d\\n", strlen(vect + 2)); // 5

strcpy(), strncpy()

문자열 복사

char vect[10] = "ABCDEFG";
char temp[10];
strcpy(temp, vect);
strncpy(temp, vect, 3);
printf("%s\\n", temp); // ABC

strcat()

문자열 연결

char vect[10] = "ABCDEFG";
char temp2[10] = "ABCD";
strcat(temp2, vect);
printf("%s\\n", temp2); // ABCDABCDEFG

strcmp(), strncmp()

문자열 비교

strcmp("aa", "bb")
strncmp("aa", "bb", 2)

결과

returnmean
0문자열이 같음
-1앞 문자열이 사전순으로 앞쪽에 있음
+1앞 문자열이 사전 순으로 뒤쪽에 있음

sscanf()

원하는 모양으로 문자열 입력

char vect[30] = "[152.123] message 2";
float time;
char msg[30];
int num;

sscanf(vect, "[%f] %s %d", &time, &msg, &num);

sprintf()

원하는 모양으로 문자열 출력

char result[30];
float time = 30.123;
char msg[30] = "HI";
int num = 35;

sprintf(result, "[%.6f] %s %d", time, msg, num);
printf("%s", result);

atoi()

ascii to integer

char buf[10] = "1234";
int v = atoi(buf);

strtok()

string token. 문자열 자르기(split)

처음 사용 이후, NULL 을 매개변수로 주는 것에 주의

char buf[12] = "AA##BB##CC";
char *p;
for (p = strtok(buf, "#"); p != NULL; p = strtok(NULL, "#")) {
	printf("%s ", p);
}

strchr()

문자 검색

문자 c가 문자열에 존재한다면, 해당 위치에 대한 포인터를 리턴.
지정된 문자를 찾지 못하면 NULL 리턴.

char vect[10] = "ABCDEFG";
printf("%s ", strchr(vect, 'C'));

strstr()

문자열 검색

string1에서 string2의 첫 번째 표시 위치를 검색.
string2를 찾지 못했다면 NULL 리턴.
string2가 길이가 0인 스트링을 가리치면 string1 리턴.

char vect[10] = "ABCDEFG";
printf("%s ", strstr(vect, "BCD"));
post-custom-banner

0개의 댓글