본문 바로가기
관/솔직한 c 언어 공부

C언어 문자열 처리를 위한 함수들 정리(2020ver).

by 4차원 박스 2020. 8. 4.

이번 포스팅에서는 C언어와 관련된 3가지 주제를 다룬다.

문자열을 저장하는 방법과 문자열 처리를 위한 여러 함수들을 소개하고,

구조체가 무엇인지 어떤 방식으로 선언하는지 간단한 내용을 알아본다!

 

<C 프로그램에서 문자열을 여러 개 저장하는 방법>

 

문자열은 배열을 통하여 선언하여 사용할 수 있다고 알고 있다.

이를 포인터와 비교하면 크게 다르지 않음을 알 수 있다.

포인터와 배열의 유일한 차이점은 주소값의 변경은 포인터는 가능하고 배열은 불가능하다 뿐이다.

때문에 배열을 상수형태의 포인터 즉 포인터 상수라 부른다.

 

따라서 문자열을 여러개 저장하는 방법으로 배열, 2차원 배열을 사용하는 방식이 있다.

또 포인터를 이용하는 방식인 포인터 배열을 이용하여 문자열을 저장할 수 있다.

 

<문자열 처리를 위한 함수들 정리>

 

문자열 입출력 함수이다.

int getchar(void) 하나의 문자를 읽어서 반환함

void putchar(int c) 변수 c에 저장된 문자를 출력함

char* gets(char* s) 한줄의 문자열을 읽어 문자배열s 에 저장함

int puts(const char* s) 배열 s에 저장된 한줄의 문자열을 출력함

 

문자열 처리함수 이다 #include <string.h> 를 선언해야 한다.

strlen(s) 문자열 s의 길이를 구한다.

strcpy(s1, s2) s2s1에 복사한다.

strcat(s1, s2) s2s1의 끝에 붙인다.

strcmp(s1, s2) s1s2를 비교한다.

char* strtok(s, delimit) 분리자를 이용하여 문자열s를 토큰으로 분리한다.

 

토큰 = 문법적으로 나눌수 없는 기본적 언어요소. 공백(스페이스)또한 토큰 즉

분리자로 분리할 수 있다.

 

<구조체>

 

구조체란?

하나의 목적을 위한 변수를 선언할때 그 목적이 되는 대상이 너무 많을경우

그 목적을 위해 사용하는 변수도 그만큼 많아진다.

이를 위해 새로운 자료형을 만들면 그 목적하나당 새로 만든 자료형의 변수 하나씩

대응 시킬 수 있게 되므로 이를 위해 새로운 묶음 단위인 구조체가 필요하다.

 

예시로 마우스의 위치를 xy축으로 각각 정의해 놓은 것과

두 축을 합하여 하나의 자료형 으로 만들어서 사용하는 것과

그 효율과 유용성에서 차이가 나기에

이러한 동시에 사용되는 자료형을 하나로 묶어서

새로운 자료형 으로 만들어 내는 것이다.

말이 너무 길어져서 오히려 헷갈려 졌다.

간단히 요약을 해보겠다.

구조체는 기존의 int, float, char등의 자료형이 너무 많아져서 효율이 떨어지는 경우

새로운 자료형으로 묶어내기 위한 새로운 틀이다.

 

다음과 같다.

 

struct point

{

int xpos;

int ypos;

};

 

와 같이 선언한다.

 

여기서 새로운 자료형은 point 인 셈이다!

 

 

 

 

 

 

댓글