프로그래밍 언어/C

C언어 23강) 배열 형태의 문자열에 입력하기(scanf/char)

happy_life 2020. 11. 13. 12:42

abcdefgh123123.tistory.com/31

 

C언어 10강 배열(array)/문자열(char 활용)

●배열(array) 1)정의: 같은 종류의 데이터 타입을 선언하기 위해 구성된 데이터의 집합. *일반변수 선언과의 차이: 일반변수의 경우에는 따로 분리된 변수 이름을 사용하지만, 배열은 변수를 한

abcdefgh123123.tistory.com

abcdefgh123123.tistory.com/69

 

C언어 18강)++ 포인터와 문자열/ 문자열 포인터에서 인덱스로 접근하기

C언어에는 문자열을 직접 선언하는 방법이 없다. 따라서 배열이나 포인터를 사용해 문자열을 처리한다. 배열을 사용해 문자열을 처리하는 방법은 abcdefgh123123.tistory.com/31?category=939526 C언어 10강

abcdefgh123123.tistory.com

▲같이 공부하면 도움되는 단원들

 

C언어의 char은 단순히 문자 1개만을 저장할 수 있다. 따라서 문자가 여러개인 문자열을 저장하기위해선 여러가지 방법이 있는데 1.배열 2.포인터 가 그것이다. 이 두가지 방법은 위의 단원에 설명해두었으니 설명을 생략하겠다. 

 

문자열을 입력하는 방식도 1.배열 2.포인터 두 가지이다. 이 글에서는 1.배열을 활용한 방법을 설명하겠다.

 

입력값을 배열형태의 문자열에 저장하기

 

 

●사용법

scanf 함수에서 %s를 활용하여 입력 값을 배열형태의 문자열에 저장할 수 있다.

 

●배열형태의 문자열에 저장하기 코드예제

#define _CRT_SECURE_NO_WARNINGS // scanf 보안 경고로 인한 컴파일 에러 방지(이해안되면넘어갈것)
#include <stdio.h>

int main()
{
    char s1[9];    // 크기가 9인 char형 배열을 선언

    printf("문자열을 입력하세요: ");
    scanf("%s", s1);     // 표준 입력을 받아서 배열 형태의 문자열에 저장(배열자체는 주소를 담고 있으므로 &사용x)

    printf("%s\n", s1);  // 문자열의 내용을 출력

    return 0;
}

결괏값

 

코드해석

 char s1[9];    // 크기가 9인 char형 배열을 선언
                 

이런 9개의 칸의 배열을 만들어주는 것이다. 배열의 이름은 s1이고 배열이므로 주소도 이미 있을 것이다.(따라서 &사용x)

 

 

예전에 배열을 선언하고 문자열을 할당해주면 안된다고 한 것과 달리, scanf로 할 때는 따로따로 가능

 

●안되던 예제 코드

#include <stdio.h>

int main()
{
    char s1[9];     // 크기가 9인 char형 배열 선언
    
    s1 = "Hi";    // 이미 선언된 배열에 문자열을 할당하면 컴파일 에러 발생

    printf("%s\n", s1);    // Hi: %s로 문자열 출력

    return 0;