c 언어

C 언어 배열과 문자열

임베디드 친구 2024. 12. 13. 13:37
반응형

배열(Array)과 문자열(String)은 C 언어에서 매우 중요한 개념입니다. 이 글에서는 배열과 문자열의 기본 개념부터 활용 방법까지 차근차근 살펴보겠습니다.


배열이란?

배열은 같은 데이터 타입의 값들을 연속된 메모리 공간에 저장하는 자료구조입니다. 배열을 사용하면 여러 개의 변수를 하나의 이름으로 관리할 수 있습니다.

배열 선언

배열을 선언하려면 데이터 타입과 배열의 이름, 그리고 크기를 지정해야 합니다.

#include <stdio.h>

int main() {
    int numbers[5]; // 크기가 5인 정수형 배열 선언
    return 0;
}

배열 초기화

배열은 선언과 동시에 초기화할 수 있습니다.

int numbers[5] = {1, 2, 3, 4, 5};

크기를 생략하면 초기값의 개수에 따라 자동으로 크기가 결정됩니다.

int numbers[] = {10, 20, 30};
// 배열 크기는 3으로 설정됩니다.

배열 요소 접근

배열의 각 요소는 0부터 시작하는 인덱스를 사용하여 접근합니다.

#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};

    for (int i = 0; i < 5; i++) {
        printf("numbers[%d] = %d\n", i, numbers[i]);
    }

    return 0;
}

다차원 배열

C 언어에서는 다차원 배열도 지원합니다. 예를 들어, 2차원 배열은 행(row)과 열(column)로 구성됩니다.

int matrix[2][3] = {
    {1, 2, 3},
    {4, 5, 6}
};

printf("matrix[0][1] = %d\n", matrix[0][1]); // 2 출력

문자열이란?

문자열은 문자(char)의 배열로 표현되며, 마지막에 문자열의 끝을 나타내는 널 문자(\0)가 포함됩니다.

문자열 선언

문자열은 다음과 같이 선언할 수 있습니다.

char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char str2[] = "Hello"; // 더 간단한 방법

문자열은 항상 널 문자를 포함해야 하므로 배열 크기는 문자열 길이보다 1 더 커야 합니다.

문자열 출력

printf 함수와 %s 서식 문자를 사용하여 문자열을 출력할 수 있습니다.

#include <stdio.h>

int main() {
    char greeting[] = "Hello, World!";
    printf("%s\n", greeting);
    return 0;
}

문자열 입력

사용자로부터 문자열을 입력받으려면 scanfgets 함수를 사용할 수 있습니다.

#include <stdio.h>

int main() {
    char name[50];
    printf("이름을 입력하세요: ");
    scanf("%s", name); // 공백 전까지 입력받음
    printf("안녕하세요, %s님!\n", name);
    return 0;
}

문자열 관련 함수

C 표준 라이브러리 <string.h>는 문자열 처리를 위한 다양한 함수를 제공합니다.

  • strlen: 문자열 길이를 반환
  • strcpy: 문자열 복사
  • strcmp: 문자열 비교
  • strcat: 문자열 연결

예제: 문자열 길이 계산

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "C Programming";
    printf("문자열 길이: %zu\n", strlen(str));
    return 0;
}

배열과 문자열의 활용 예제

배열과 문자열을 활용하여 간단한 프로그램을 작성해보겠습니다.

예제 1: 배열의 합 계산

#include <stdio.h>

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }

    printf("배열의 합: %d\n", sum);
    return 0;
}

예제 2: 문자열 뒤집기

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello, World!";
    int len = strlen(str);

    printf("원래 문자열: %s\n", str);

    for (int i = 0; i < len / 2; i++) {
        char temp = str[i];
        str[i] = str[len - i - 1];
        str[len - i - 1] = temp;
    }

    printf("뒤집힌 문자열: %s\n", str);
    return 0;
}

정리

  • 배열은 같은 데이터 타입의 값을 연속된 메모리 공간에 저장하는 자료구조입니다.
  • 문자열은 문자 배열로 표현되며, 항상 널 문자(\0)로 끝납니다.
  • C 표준 라이브러리에는 문자열 처리를 위한 다양한 함수가 제공됩니다.

배열과 문자열을 제대로 이해하고 활용하면 더욱 효율적이고 강력한 C 프로그램을 작성할 수 있습니다.

반응형