반응형
✅ C언어 문자열(char 배열) 쉽게 배우기 – 문자열 입력, 출력, 함수까지 총정리!
문자 하나하나는 char 자료형으로 저장되지만,
여러 문자가 연속되어 만들어지는 문장이나 단어를 다루기 위해 우리는 문자열을 사용합니다.
이번 시간에는 C언어에서 문자열을 다루는 방법과 자주 사용하는 문자열 함수들을 정리해봅니다.
🔤 문자열이란?
C언어에서 문자열은 char형 배열로 표현됩니다.
문자열의 끝은 항상 **NULL 문자(\0)**로 표시됩니다.
예:
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
📦 문자열 선언과 초기화
방법 1: 문자 하나하나 초기화
char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
방법 2: 문자열 리터럴 사용 (추천!)
char str[] = "Hello";
✅ str의 크기는 자동으로 계산됨 (+1은 \0 포함)
🖨 문자열 출력하기
char name[] = "ChatGPT";
printf("%s\n", name); // 문자열 출력
✅ %s는 문자열 포맷 지정자입니다.
⌨ 문자열 입력받기
방법 1: scanf() 사용 (단어만 입력 가능)
char name[20];
scanf("%s", name);
❗ 공백(스페이스) 전까지만 입력받음
방법 2: gets() 사용 (문장 전체 입력 가능, 비권장)
char sentence[100];
gets(sentence);
⚠️ 보안 이슈로 gets()는 사용 자제 → fgets() 권장
방법 3: fgets() 사용 (공백 포함 안전하게 입력받기)
fgets(sentence,
sizeof(sentence),
stdin);
✅ 한 줄 전체를 입력받을 수 있고, 버퍼 오버플로우 방지 가능
🧠 문자열 관련 주요 함수 (string.h 필요)
함수명설명
strlen() | 문자열 길이 구하기 |
strcpy() | 문자열 복사 |
strcat() | 문자열 붙이기 |
strcmp() | 문자열 비교 |
예제: 문자열 길이 구하기
#include <stdio.h>
#include <string.h>
int main()
{
char str[ ] = "Hello";
printf("문자열 길이: %lu\n", strlen(str));
return 0;
}
✅ 결과: 5
예제: 문자열 복사와 연결
char a[20] = "Hello";
char b[20];
strcpy(b, a); // b = "Hello" strcat(b, " World"); // b = "Hello World"
🎯 실전 예제: 이름과 나이 입력받아 출력하기
char name[30];
int age;
printf("이름을 입력하세요: ");
scanf("%s", name);
printf("나이를 입력하세요: ");
scanf("%d", &age);
printf("안녕하세요, %s님. 나이는 %d세입니다.\n", name, age);
📌 문자열 사용 시 주의할 점
- 항상 문자열 마지막에 '\0'이 포함되어 있어야 함
- 배열 크기를 충분히 확보할 것
- 공백 포함 문자열은 fgets() 사용
📝 과제
- 사용자 이름과 인사말을 연결하여 출력 (예: "홍길동님 반갑습니다.")
- 두 문자열을 입력받아 알파벳 순서 비교 (strcmp() 활용)
- 여러 문장을 입력받고, 가장 긴 문장의 길이를 출력
🗣 다음 주 예고: 함수(Function)의 정의와 호출
이제 코드가 길어지기 시작했죠?
다음 시간엔 **코드를 모듈화하고 재사용하는 방법인 함수(function)**에 대해 배웁니다!
반응형
'C언어 > C언어 기초' 카테고리의 다른 글
초급8강_C언어 함수(Function) 완전정복 – 정의, 호출, 매개변수까지 쉽게 배우기 (2) | 2025.04.18 |
---|---|
초급6강_C언어 배열(Array) 완전정복 – 초보자도 쉽게 이해하는 배열의 모든 것 (2) | 2025.04.17 |
초급5강_C언어 반복문 쉽게 배우기 – for, while, do-while 완전정복 (0) | 2025.04.17 |
초급4강_C언어 조건문 if, else 쉽게 배우기 – 초보자를 위한 흐름 제어의 첫걸음! (0) | 2025.04.17 |
초급 3강_C언어 연산자 쉽게 배우기 – 산술, 대입, 비교, 논리 연산자 총정리 (0) | 2025.04.17 |