C/C++ 학습 · 3 min read · Oct 09, 2025
C/C++ 단계별 학습 - 8페이지
08. 단계별 C/C++ — C 프로그래밍 - 문자열
| 문자열 | |
| - 소개 | |
| - 문자열의 특성 | |
| - 문자열에 대한 연산 |
| | 1. 문자열의 정의
- 문자열의 초기화
- 문자열 읽기 및 출력
- 내장 공백 읽기
- 문자열의 길이
- 문자열과 함수
- 문자열 배열 |
소개
배열은 문자열을 검사하는 데 사용되며, 일반적으로 문자열은 배열 유형 변수입니다.
문자열은 공백을 포함한 문자 집합인 반면, 단어는 공백을 제외한 문자 집합입니다. 모든 문자열 변수는 ‘\0’ 널 문자로 종료되어야 하며, 인덱스 값은 0부터 시작합니다.
모든 문자열은 다음과 같은 특성을 가집니다:
| | 1. 문자(즉, 문자, 숫자 및 특수 문자)의 집합이어야 합니다.
- 모든 문자열은 NULL 문자(즉, ‘\0’)로 끝나야 합니다.
- 문자열의 각 문자를 식별하는 고유한 양수 번호인 인덱스가 있습니다.
- 인덱스 값은 0부터 시작해야 합니다.
- 문자열의 문자에 대한 임의 접근이 가능합니다.
- 문자열은 배열처럼 고정 크기로 선언해야 합니다. |
예를 들어 다음 예를 고려하십시오:
char str = " magic";| |
|
문자열을 조작하기 위해 다양한 문자열 라이브러리 함수가 사용됩니다. 문자열 배열은 char 유형의 배열 배열입니다.
문자열에 대한 연산
라이브러리 문자열 함수를 사용하는 것보다 훨씬 더 나은 작업을 수행할 수 있습니다.
문자열은 다음과 같은 작업을 수행할 수 있습니다.
| | 1. 문자열의 정의
- 문자열의 초기화
- 문자열 읽기 및 출력
- 내장 공백 읽기
- 문자열의 길이
- 문자열과 함수
- 문자열 배열 |
1. 문자열의 정의
모든 변수는 프로그램의 시작 부분에서 선언되어야 합니다.
문자열 변수의 정의는 다음과 같습니다.
| |
|
2. 문자열의 초기화
문자열은 다음 방법으로 초기화할 수 있습니다.
| | 1. 직접 할당 char name[10] = "Ashitha"; “Ashitha”를 name에 할당하고 나머지 공간은 비워둡니다. | 2. 크기 없이 직접 할당 char name[] = "Ashitha"; “Ashitha”를 name에 할당하고 상수의 크기까지 고정합니다. | | | 3. 디자인 시간 할당 char name[10];
strcpy(name, “Ashitha”); 문자열 함수를 사용하면 가능합니다.
하지만 C는 다음과 같은 할당을 지원하지 않습니다:
name = “Ashitha”; | 4. 런타임 할당 char name[10];
scanf(“%s”, name); 런타임에 변수에 상수 값을 수용하고 할당합니다. |
3. 문자열 읽기 및 출력
C는 문자열 상수를 읽고 출력하기 위해 다양한 유형의 문자열 함수를 제공합니다. 아래에 나열되어 있습니다.
| | 입력 문장
getch
getche
getchar
gets
scanf | 출력 문장
putch
putchar
puts
printf |
| | / 문자열을 수용하고 표시하는 프로그램 /
/ 51_strings.c /
#include
int main()
{
char str[20];
scanf(“%s”, str);
printf(“%s” str);
return 0;
} |
| | / 프롬프트와 함께 문자열을 수용하고 표시하는 프로그램 /
/ 52_strings.c /
#include
int main( )
{
char str[20];
printf(“문자열을 입력하세요:”); scanf(“%s”, str);
printf(“\n입력한 내용: %s”, str);
return 0;
} |
4. 내장 공백 읽기
scanf는 문자열을 수용하므로 단일 단어로 구성된 문자열을 읽지만 공백 이후에 입력된 내용은 버려집니다.
예: 문자열 입력: Law is a bottomless pit.
입력한 내용: Law
공백이 포함된 텍스트를 읽으려면 다른 함수인 gets()를 사용합니다.
| | / 내장 공백이 있는 문자열 읽기 /
/ 53_gets.c /
const int MAX = 80;
int main()
{
char str[MAX];
print(“문자열을 입력하세요:”); gets(str);
printf(“입력한 내용:”); puts(str);
return 0;
} |
5. 문자열의 길이
모든 문자열은 상수에 따라 고정 길이를 가집니다.
다음 프로그램은 문자열의 길이를 찾는 방법을 보여줍니다.
| | / 주어진 문자열의 길이를 찾기 위한 프로그램 /
/ 53_length.c /
#include
int main()
{
int i=0;
char str[50];
printf(“문자열을 입력하세요“); gets(str);
while(str[i] != ‘\0’) i++;
printf(“길이는 %d”, i);
return 0;
} |
6. 문자열과 함수
함수는 특정 작업을 수행하는 독립적인 문장 블록입니다. 문자열을 구성하는 가장 좋은 방법입니다.
다음은 함수를 사용하여 문자열을 구성하는 예입니다.
| | / 문자열의 길이를 찾기 위한 프로그램 /
/ 54_len.c /
#include
int len_str(char s[]); int main()
{
int l; char str[50];
printf(“문자열을 입력하세요“); gets(str);
l = len_str(str);
printf(“\n문자열의 길이: %d”, l);
} int len_str(char s[])
{
int l=0;
while(s[l] != ‘\0’) l++;
return l;
} |
| | / 문자열을 수용하고 출력하는 프로그램 /
/ 55_str.c /
#include
void disp_str(char s[]); int main()
{
char str[50];
printf(“문자열을 입력하세요“); gets(str);
disp_str(str);
return 0;
} void disp_str(char s[])
{
int i=0;
while( s[i] != ‘\0’ ) putch(s[i++]);
} |
7. 문자열 배열
배열은 문자열을 검사하는 데 사용되며, 일반적으로 문자열은 배열 유형 변수입니다. 따라서 문자열 배열에 접근할 수 있습니다.
다음 예제는 문자열 배열이 어떻게 구성되는지를 보여줍니다.
| | / 문자열 배열을 표시하는 프로그램 /
/ 56_display.c /
#include
void main()
{
char week[7][] = { “일요일”, “월요일”, “화요일”, “수요일”, “목요일”, “금요일”, “토요일” };
int i;
for( i = 0; i<7; i++) puts(week[i]);
} |
| | / 문자열 배열을 수용하고 표시하는 프로그램 /
/ 57_strings.c /
#include
void main()
{
char names[7][10]; int i;
for( i = 0; i<7; i++) gets(names[i]);
for( i = 0; i<7; i++) puts(names[i]);
} |
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.