본문 바로가기

코린이

Day15 본문

C언어/C언어 기본문법

Day15

winsome99 2022. 11. 22. 01:21
반응형

 

오늘은 문자열 입력받는 방법에 대해 배웠다

scanf() 함수를 통해 문자열을 입력받을 때는 배열 이름 앞에 &나 배열의 뒤에 인덱스를 작성하지 않는다.

문자열의 끝에는 항상 문자열의 끝을 알려주는 NULL 문자가 들어간다. 문자열을 배열에 저장할 때는 반드시 NULL 문자의 크기까지 고려해 줘야 한다. 그리고 NULL 문자를 표기할 때는 정수 0, 문자 '\0', NULL로 표기 할 수 있다.

문자열을 담을 배열을 초기화 할 때는 ""안에 문자열을 작성 해 주면 된다. ex) char str[6] = "Hello";

문자열을 담을 배열을 NULL 문자로 초기화 할 때는 char str[10] = {0, }; 형식으로 진행할 수 있다.

 

그럼 문제로 문자열을 마저 공부해 보겠다.

Q1) Hello라는 문자를 입력 받고 배열에 저장 후 출력하는 프로그램을 만드시오(문자를 하나씩 입력 받는다.)

 

#include<stdio.h>

int main(){
    char str[5];
	
	printf("입력: ");
	for (int i = 0; i < 5; i++) { 
		scanf("%c", &str[i]); //반복문을 사용하여 scanf에서 문자열 하나씩 입력을 받아준다.
	}
	printf("출력: ");
	for (int i = 0; i < 5; i++) {
		printf("%c",str[i]);
	}

    return 0;
}
 
 
#include<stdio.h>

int main(){
    char str[6];//char str[5]; NULL문자가 없어서 에러가 뜬다. char str[6]; O

	printf("입력: ");
	scanf("%s",str);//배열의 문자열에서는 &제외

	str[2] = NULL;//0,'\0' NULL을 많이 사용한다. 코드상에서 명확하게 하기 위해서
	//NULL이 문자열을 끝을 알려줘서 He만 뜬다.

	printf("출력: %s\n",str);//에러가 뜨는 이유는 NULL이라는 문자열도 저장할 공간을 만들어줘야한다.

    return 0;
}
 

 

#include<stdio.h>

int main(){
    char str[10] = {0,};//모든 공간을 NULL로 초기화
	printf("입력: ");
	scanf("%s",str);

	str[5] = 'a';//a가 5에 들어가서 null이 나오기전까지 쓰레기 값들이 나온다.
	printf("출력: %s\n",str);
	
    return 0;
}
 

지금까지 문자열을 이용해서 Hello를 출력할 때 어떻게 나오는지 확인해 봤다.


Q2) 이름, 나이, 주소, 키, 몸무게를 입력 받고 아래와 같이 출력되는 프로그램 만들기

출력

--------------------

이름: 엄상현

나이:24

주소: 경기도 고양시

키: 174.2cm 몸무게: 78.53kg(임시로 했습니다...)

#include<stdio.h>

int main(){
    

#include<stdio.h>

    char name[20];//문자열
	char ad[100];//문자열
	int age;//정수형
	float height;//실수형
	double weight;//실수형

	printf("이름:");
	scanf("%s", name);
	printf("나이:");
	scanf("%d", &age);
	printf("주소:");
	scanf("%s", ad);
	printf("키:");
	scanf("%f", &height);
	printf("몸무게:");
	scanf("%lf", &weight);

	printf("출력");
	printf("---------------------------\n");
	printf("이름: %s\n", name);
	printf("나이: %d\n", age);
	printf("주소: %s\n", ad);
	printf("키: %.1fcm\t 몸무게: %.2fkg\n", height, weight);

	
    return 0;
}
 

 

반응형

'C언어 > C언어 기본문법' 카테고리의 다른 글

Day17  (0) 2023.02.15
Day16  (0) 2023.02.15
Day14  (0) 2022.11.19
Day13  (0) 2022.11.16
Day12  (0) 2022.11.14
Comments