티스토리 뷰

Computer/C

[초급] 문자열입력받기

jamezc 2017. 7. 4. 02:08
[초급] 문자열 입력받기


01. Char 변수에 문자 입력 받기

1) scanf 사용하기 (기본)
int main()
{
    char c;

    scanf("%c", &c);    // 문자를 입력받아서 변수에 저장
    printf("%c\n", c);    // 변수의 내용을 출력

    return 0;
}

 2) getchar 사용하기
int main()
{
    char c = getchar();    // 문자 하나를 입력받음
    printf("%c\n", c);
    return 0;
}



02. Char 배열에 문자열 입력 받기

int main()
{
    char string1[10];    // 크기가 10인 char형 배열을 선언
    char string2[30];    // 크기가 30인 char형 배열을 선언

    scanf("%s", string1);     // 표준 입력을 받아서 배열 형태의 문자열에 저장
    printf("%s\n", string1);  // 문자열의 내용을 출력

    scanf("%[^\n]s", string2);    // 공백까지 포함하여 문자열 입력받기
    printf("%s\n", string2);

    return 0;
}



03. 메모리 할당하여 문자열 포인터 변수에 문자열 입력 받기

 1) 오류

int main()
{
    char *string = "Hello";    // 문자열 포인터 선언, 문자열 할당

    scanf("%s", string );
    // 실행 에러,
    // 문자열 리터럴의 주소를 가르키는 포인터에 저장된 변수는 읽기만 가능하고 쓰기 불가능합니다.

    printf("%s\n", string );

    return 0;
}

 2) 정상

int main()
{
    char *string = malloc(sizeof(char) * 10);    // char 10개 크기만큼 동적 메모리 할당

    scanf("%s", string);      // 표준 입력을 받아서 메모리가 할당된 문자열 포인터에 저장
    printf("%s\n", string);   // 문자열의 내용을 출력

    free(string);    // 동적 메모리 해제
    return 0;
}


댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글