C언어의 기초 문법

#include <string.h>

자 또 string.h 나오니까 생각나시죠? 또 엄청나게 배울 게 있다는 걸... 네. 저도 싫지만 이번 거 엄청 길겠네요. 그런데 중요해서 꼭 들으셔야 합니다. 일단 string.h에서는 아주 많은 함수들이 내장되어 있지만(아마 한 100개쯤?) 이 중에서 가장 중요한 것은 이렇게 5개입니다.

strcpy, strcat, strcmp, strchr, strlen

이렇게 5개인데요, 이 5개는 여러가지 역할을 합니다. 아마 들으시고 나면, '저런 함수들이 있었으면 나는 지금까지 반복문 돌리면서 뭐한거지?'라는 생각이 들 거에요. 저도 물론 들었고요. 일단 string.h를 삽입합니다. 전이랑 똑같이 #include <string.h>로 선언하시면 되고요, 제가 하나 하나 설명해드리겠습니다. 


strcpy(char* s1, const char* s2)는 다른 배열로 모든 원소(배열 안에 변수들을 원소라고 합니다)들을 복사합니다. 예시는 다음과 같습니다.

char str1[] = "programmer", str2[11];
strcpy(str2, str1);
puts(str1);
puts(str2);
/* result:

    programmer
    programmer

*/

이처럼 strcpy는 strcpy(붙여넣기 할 배열, 복사할 배열); 형태로 선언합니다.


strcat(char* s1, const char* s2)는 한 배열에 다른 배열을 이어 붙이는 함수입니다. 예시는 다음과 같습니다.

char dest[30] = "C ", source[30] = "programmer";
strcat(dest, source);
puts(dest);
// retsult: C programmer

이처럼 strcat는 strcat(배열, 앞 배열에 붙여질 배열); 로 선언할 수 있습니다.


strcmp(const char* s1, const char* s2)는 배열 2개를 대소문자로 비교하는 함수입니다. 예시는 다음과 같습니다.

char str1[] = "programmer", str2[] = "Programmer";
printf("%d", strcmp(str1, str2));
// result: -1

여기에서 strcmp는 strcmp(배열1, 배열2); 로 선언할 수 있습니다. 만약 앞 배열이 크다면 1, 같다면 0, 같지 않다면 -1을 출력하는데, 주로 두 문자열이 같은 지 아닌 지 확인할 때 씁니다.


strchr(const char* s, int c)는 배열에서 특정 문자를 찾습니다. 예시는 다음과 같습니다.

char strTemp;
char string[] = "This is a good car!";

strTemp = strchr(string, 'a');
printf("%s \n", strTemp);

strTemp = strchr(string, 'c');
printf("%s", strTemp);

/* result:
    a good car!
    car!
*/

이처럼 strchr은 그 문자를 찾으면 그 부분 전에를 끊습니다. strchr(배열, 찾으려고 하는 문자의 ASCII)로 정의할 수 있습니다. 여기에서 ASCII는 int형인데 그냥 char로 입력해도 자동으로 int로 변환시켜줍니다.


마지막으로, strlen(const char* s)은 문자의 수(NULL 제외)를 세주는 함수입니다. 이건 소스코드를 안 써도 이건 아실 수 있겠죠? 아마 이게 가장 활용이 많이 될 것이라 생각합니다.


와... 엄청 기네요... 외우실 필요 없습니다. 이해하시고 넘어가시면 됩니다. 그런데 외우고 계시면 아주 편리하겠죠?

댓글

댓글 본문
  1. 여기도 질문이 많을 것이라 생각합니다.

    일단 제가 생각하기에, "변수 뒤에 별* 붙는 건 뭐에요?" 라고 분명히 물어보실텐데, 이건 포인터입니다. 지금은 알 필요 없고, 여기에 써져 있는 const char* s2 이런 건 구조체입니다. 진짜 어렵고 쓸데없는 문법들이죠... 지금은 모르셔도 되요. 지금 알려드리면 절대 이해 못 하실 것 같고요
버전 관리
Joel
현재 버전
선택 버전
graphittie 자세히 보기