컴퓨터 과학/자료구조 및 알고리즘

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만을 사용하도록 하는 곳이 있어서 본인이 원하는 직무라면 알아둘 필요가 있다. 일단은 이정도로 마무리한다.

 

 

반응형