IT프로그램 언어/C 언어

C언어 기초(문자열 다루기)

필립곽 2024. 11. 10. 16:00
반응형

이번 포스팅에서는 C언어에서 문자열을 어떻게 다루는지에 대해 알아보겠습니다.
문자열은 우리가 일상에서 사용하는 문자들의 집합으로, 프로그래밍에서도 매우 중요한 역할을 합니다. C언어에서 문자열을 다루는 방법을 단계별로 설명하고, 예제를 통해 이해를 돕겠습니다.

 
1.문자열이란?


C언어에서 문자열은 문자 배열로 표현됩니다. 문자열의 끝은 널 문자(\0)로 표시되며, 이 문자가 없으면 C언어는 문자열의 끝을 알 수 없습니다. 예를 들어, "Hello"라는 문자열은 다음과 같이 메모리에 저장됩니다:
 
H e l l o \0
 

2.문자열 선언 및 초기화


문자열을 선언하려면, char 타입의 배열을 사용합니다. 다음은 문자열을 선언하고 초기화하는 방법입니다.
 
#include <stdio.h>

int main() {
    char str1[6] = "Hello"; // 널 문자를 포함하여 6개의 공간 필요
    char str2[] = "World"; // 배열의 크기를 자동으로 결정
    printf("%s %s\n", str1, str2);
    return 0;
}

위 코드를 실행하면 "Hello World"가 출력됩니다. str1은 6개의 문자를 저장할 수 있도록 크기를 지정했고, str2는 초기화할 때 자동으로 크기가 결정됩니다.

 
3.문자열 길이 구하기

 
문자열의 길이를 구하려면 strlen() 함수를 사용합니다. 이 함수는 문자열의 길이를 반환하며, 널 문자는 포함하지 않습니다.

#include <stdio.h>
#include <string.h>
#include <locale.h>  /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

int main() {
    char str[] = "Hello, World!";
 
    setlocale(LC_ALL, "ko_KR.UTF-8"); /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

    printf("문자열의 길이: %lu\n", strlen(str)); // %lu는 unsigned long 형식
    return 0;
}
이 코드를 실행하면 "문자열의 길이: 13"이 출력됩니다.

 
4.문자열 복사
 

문자열을 복사할 때는 strcpy() 함수를 사용합니다. 이 함수는 두 번째 인자인 문자열을 첫 번째 인자로 복사합니다.

#include <stdio.h>
#include <string.h>
#include <locale.h>   /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

int main() {
    char source[] = "Hello";
    char dest[20]; // 충분한 크기 확보
 
    setlocale(LC_ALL, "ko_KR.UTF-8"); /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */
    strcpy(dest, source);
    printf("복사된 문자열: %s\n", dest);
    return 0;
}
이 코드를 실행하면 "복사된 문자열: Hello"가 출력됩니다.

 
5.문자열 연결
 

문자열을 연결할 때는 strcat() 함수를 사용합니다. 이 함수는 두 번째 인자의 문자열을 첫 번째 인자의 문자열 뒤에 추가합니다.

#include <stdio.h>
#include <string.h>
#include <locale.h> /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

int main() {
    char str1[20] = "Hello";
    char str2[] = " World!";
 
    setlocale(LC_ALL, "ko_KR.UTF-8"); /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

    strcat(str1, str2);
    printf("연결된 문자열: %s\n", str1);
    return 0;
}
이 코드를 실행하면 "연결된 문자열: Hello World!"가 출력됩니다.
 

6.문자열 비교
 

문자열을 비교할 때는 strcmp() 함수를 사용합니다. 이 함수는 두 문자열을 비교하여, 일치하면 0을 반환합니다.

#include <stdio.h>
#include <string.h>
#include <locale.h> /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

int main() {
    char str1[] = "Hello";
    char str2[] = "Hello";
    char str3[] = "World";
 
    setlocale(LC_ALL, "ko_KR.UTF-8"); /* 윈도우 터미널에서 실행시 한글이 깨지는 현상을 방지한다. */

    if (strcmp(str1, str2) == 0) {
        printf("str1과 str2는 동일합니다.\n");
    }
    if (strcmp(str1, str3) != 0) {
        printf("str1과 str3는 다릅니다.\n");
    }
    return 0;
}
이 코드를 실행하면 두 비교 결과에 따라 각각의 메시지가 출력됩니다.

 
7.결론

 
C언어에서 문자열은 문자 배열로 다뤄지며, 다양한 함수들을 통해 문자열의 길이 측정, 복사, 연결, 비교 등을 수행할 수 있습니다. 이러한 기본적인 문자열 처리 방법을 익히면, C언어로 개발하면서 문자열을 다루는 데 큰 도움이 될 것입니다.

이제 여러분도 C언어의 문자열을 자신감 있게 다룰 수 있기를 바랍니다! 
 
감사합니다!

반응형