친절코딩

55. 문자열 입력 본문

C언어 배우기/C언어 배우기(51~100)

55. 문자열 입력

웹도날드 2018.12.17 22:46


이 강의는 이전 강의 '표준 입력'과 연관이 있습니다.


이전에 scanf_s( ) 함수를 사용해서 정수나 실수, 문자 등을 입력받아 보았습니다. 문자열 또한 scanf_s( ) 함수를 통해 입력 받을 수 있습니다. scanf_s( ) 함수의 사용법은 다음과 같았습니다.


1
scanf_s("형식 지정자"&입력받을 변수);
cs


문자열의 입력 방식은 다른 자료형과 차이가 있습니다. 먼저 형식 지정자를 "%s" 사용하고 '&변수' 대신 배열 이름을 적습니다. 그리고 안전성을 위해 마지막에 배열의 요소 개수도 적어줘야 합니다. 이전에 변수 앞에 &를 붙이면 변수가 저장되어 있는 메모리의 위치를 뜻한다고 말했습니다. 하지만 배열은 이름 자체가 메모리의 위치를 뜻하기 때문에 & 기호를 붙여주지 않아도 됩니다. 이에 대한 자세한 설명은 이후에 하겠습니다.


1
scanf_s("%s", 배열의 이름, 배열의 요소 개수);
cs


이제 코드를 보겠습니다. 입력받은 문자열을 한 줄씩 출력하는 코드입니다. 주의할 것은 띄어쓰기를 사용할 수 없다는 점입니다. 띄어쓰기를 사용하면 입력이 끝난 것으로 간주합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
 
int main()
{
    char str[100]; // 문자열을 입력받을 충분한 공간을 선언합니다.
 
    printf("문자열을 입력하세요: ");
 
    scanf_s("%s", str, 100); // 이전 scanf_s( )와 사용법이 다릅니다.
 
    int index = 0;
 
    // 널 문자를 만날 때까지 index를 계속 늘려가며 문자를 반복 출력합니다.
    while (str[index] != '\0'// 널 문자와 다르면 조건이 참이 됩니다.
    {
        printf("%c", str[index]);
        printf("\n");
 
        index++;
    }
 
    return 0;
}
 
 
출력 결과////////////////////////////////
 
문자열을 입력하세요: happy
h
a
p
p
y
cs


'C언어 배우기 > C언어 배우기(51~100)' 카테고리의 다른 글

55. 문자열 입력  (0) 2018.12.17
54. 문자열 배열의 초기화  (0) 2018.12.17
53. 배열과 문자열  (0) 2018.12.14
52. 다차원 배열  (0) 2018.12.11
51. 배열의 초기화  (0) 2018.12.06
0 Comments
댓글쓰기 폼