'문자'에 해당되는 글 2건

  1. 2017.07.04 [초급] 문자열입력받기
  2. 2016.04.09 [초급] 문자열 입력받고 하나씩 자르기 (2)
2017.07.04 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;
}


저작자 표시
신고


Posted by injunech
2016.04.09 00:14


[초급] 문자열 입력받고 하나씩 자르기

입력값이 12345 와같은 값으로 들어올때 int 배열의 하나의 공간에 각 한자리 숫자 값을 입력 받는 방법이다.
#include <stdio.h>

int main() {
	char str[50];
	int val[10];

	scanf("%s", &str);
	for (int i = 0; str[i] != '\0'; i++){
		val[i] = str[i] - '0';
		printf("%d ", val[i]);
	}
	return 0;
}
input 값이 12345 인 경우 char str 배열에 들어가는 입력 값은 str[0] 부터 str[4] 까지 차례로 1,2,3,4,5 가 되며 코드 수행시 아래와 같이 출력 된다. 1 2 3 4 5 끝.


신고


Posted by injunech

티스토리 툴바