컴퓨터 과학/자료구조 및 알고리즘
C언어 코딩 테스트 관련 정리
잡학다식을꿈꾼다
2025. 5. 16. 10:14
반응형
문자열 관련 함수
함수 | 헤더 | 파일 설명 |
strlen(문자열포인터); strlen(문자배열); | string.h | 문자열의 길이를 구합니다(NULL은 포함하지 않음). |
strcmp(문자열1, 문자열2); | string.h | 문자열1과 문자열2를 비교합니다(Windows). - -1: ASCII 코드 기준으로 문자열2가 클 때 - 0: ASCII 코드 기준으로 두 문자열이 같을 때 - 1: ASCII 코드 기존으로 문자열1이 클 때 앞에 것이 크면 1, 뒤에 것이 크면 -1입니다. 리눅스와 OS X에서는 문자열1의 ASCII 코드값에서 문자열2의 ASCII 코드값을 뺀 결과를 반환합니다. - 반환값이 양수가 나오면 문자열1이 크고, 음수가 나오면 문자열2가 큼 - ASCII 코드 기준으로 두 문자열이 같으면 0 |
strcpy(대상문자열, 원본문자열); | string.h | 문자열을 복사합니다. |
strcat(최종문자열, 붙일문자열); | string.h | 문자열을 붙입니다. |
sprintf(배열, 서식, 값); sprintf(배열, 서식, 값1, 값2, ...); sprintf(문자열포인터, 서식, 값); sprintf(문자열포인터, 서식, 값1, 값2, ...); |
stdio.h | 서식을 지정하여 문자열을 생성합니다. |
strchr(문자열, 검색할문자); | string.h | 문자열 안에서 문자로 검색합니다. 문자를 찾았으면 해당 문자부터 NULL 바로 앞까지의 문자열이 나옵니다 (해당 문자의 포인터 반환). |
strrchr(문자열, 검색할문자); | string.h | 문자열의 뒤에서부터 문자로 검색합니다. 문자를 찾았으면 해당 문자부터 NULL 바로 앞까지의 문자열이 나옵니다(해당 문자의 포인터 반환). |
strstr(대상문자열, 검색할문자열); | string.h | 문자열 안에서 문자열로 검색합니다. 문자열을 찾았으면 해당 문자열부터 NULL 바로 앞까지의 문자열이 나옵니다(해당 문자열의 포인터 반환). |
strtok(대상문자열, 기준문자); | string.h | 문자를 기준으로 문자열을 자릅니다. 자른 문자열을 한 번에 얻을 수 없으므로 while로 계속 반복 사용해야 합니다. 그리고 문자열을 자른 부분은 NULL로 바뀝니다. |
atoi(문자열); | stdlib.h | 문자열을 정수로 변환합니다. |
atof(문자열); | stdlib.h | 문자열을 실수로 변환합니다. |
strtol(문자열, 끝포인터, 진법); | stdlib.h | 특정 진법으로 표기된 문자열을 정수로 변환 합니다. 정수 여러 개가 들어있는 문자열을 변환할 수 있습니다. |
strtof(문자열, 끝포인터); | stdlib.h | 문자열을 실수로 변환합니다. 실수 여러 개가 들어있는 문자열을 변환할 수 있습니다. |
sprintf(문자열,"%d", 정수); sprintf(문자열,"%x", 정수); sprintf(문자열,"%X", 정수); |
stdio.h | 정수를 문자열로 변환합니다. - %d: 10진수 - %x: 16진수 소문자 - %X: 16진수 대문자 |
sprintf(문자열,"%f", 실수); | stdio.h | 실수를 문자열로 변환합니다. |
2. 대소문자 : 방법은 두 가지이다.
1) 소문자 = 대문자 + 32 관계를 이용한다.
2) strupr(char* str)(소문자 -> 대문자), strlwr(char* str)(대문자 -> 소문자)를 이용한다.
3. sorting 함수(stdlib.h)
sort(void *base, size_t num, size_t 배열 하나의 크기, int 비교함수);
int compare(type* a, type* b){
return 양수(swap);
retunr 음수(그대로);
}
예시 : 오름차순 정렬
#include<stdio.h>
#include<stdlib.h> //qsort라이브러리를 부를 수 있는 헤더파일
int compare(const int* a, const int* b) { //비교 요소의 형식을 갖춘 매개변수
return(*a - *b);//오름차순
}
int main() {
int N[10] = { 21, 10, 41, 33, 25, 17, 68, 27, 14, 29 };
qsort(N, 10, sizeof(int), compare); //배열 위치 주소, 요소의 개수, 요소의 크기, 기준 함수
for (int i = 0; i < 10; i++) {
printf("[%d]", N[i]);
}
return 0;
}
4. int isdigit(int char) : 해당 글자가 digit인지 반환(1 : true, 0 : false) : <ctype.h>
사실 C 언어 자체는 C++, Python처럼 코딩테스트에 필요한 많은 기능을 제공하지 않아서, 적합하지는 않다. 다만 임베디드 소프트웨어 개발 직무의 경우 C만을 사용하도록 하는 곳이 있어서 본인이 원하는 직무라면 알아둘 필요가 있다. 일단은 이정도로 마무리한다.
반응형