본문 바로가기
C

문자열 배열 연습2

by KWONE 2024. 5. 28.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
	int age;
	// 문자열 입력 처리
	char inputs[30];
	printf("당신의 나이는?\n");
	scanf("%d",&age);
	printf("당신의 이름은?\n");
	scanf("%s", inputs); //1.공백없이 입력! 2. &기호 사용하지 않음!
	printf("입력하신 당신의 이름은 %s입니다.\n",inputs );
	printf("입력하신 당신의 나이는 %d입니다.\n",age );
	return 0;
}

이름을 입력할때, 홍 길동 이렇게 띄워서 입력하게되면 '홍'만 입력받게되어 출력할때 정말'홍'만 출력되는것을 볼 수 있다. 

따라서 문자열을 배열에 입력할 때에는 적절한 함수 사용을 통해 입출력을 할 필요가 있다.

printf와 scanf의 조합이 아닌

gets_s와 puts의 방식으로 배열에 문자열을 저장하고 출력할 수 있다.

다음 예시를 통해 확인해보자.

#include <stdio.h>
int main(void)
{
	char name[100];
	char address[100];
	printf("이름을 입력하시오: ");
	gets_s(name , 100);
	printf("현재 거주하는 주소를 입력하시오: ");
	gets_s(address , 100);
	puts(name );
	puts(address );
	return 0;
}

scanf와 달리 띄어쓰기에서 입력을 그만받지않고 하나의 문자열로 인식해 전체를 입력받는다. 

다음 함수들을 예시를 통해 확인해보자.

// getchar()의 사용
#include <stdio.h>
int main(void)
{
	int ch; // 정수형에 주의
	while ((ch = getchar()) != EOF)
		//if( (ch = getchar()) != EOF )
		putchar(ch);
	return 0;
}

 

 

#include <stdio.h>
#include <conio.h>
int main(void)
{
int ch;
while( (ch = _getch()) != 'q' )//버퍼를 사용하지 않는다. 에코도 없음!
//if( (ch = _getch()) != 'q') _putch(ch);
return 0;
}

용도에 맞는 것을 골라 사용 

버퍼가 없이 바로 받으려면 _getch()를 사용한다.

'C' 카테고리의 다른 글

문자열 배열 연습 4  (0) 2024.05.29
문자열 배열 연습 3  (0) 2024.05.29
문자열 배열 연습1  (0) 2024.05.28
문자열 배열 출력  (0) 2024.05.28
이차원 배열 인수전달  (0) 2024.05.27