- C언어 : 입출력과 사칙연산(10)
06.MAY.2022
준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고
놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는
아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.
C 언어에는 문자열(String) 자료형이 따로 존재하지 않는다.
따라서 문자열을 저장하기 위해 2가지 방법을 사용했다.
>>2-1. 첫 번째 방법 : 배열
#include<stdio.h>
int main()
{
char c[50];
scanf("%s", &c);
printf("%s??!\n", c);
}
문자열을 입출력하기 위해 첫 번째로는 배열을 사용할 수 있다.
입력 조건에 길이가 50자가 넘지 않는다는 문구가 있었으므로, 길이가 50인 배열을 선언한다. 그 후 문자열을 입력받아 배열에 저장하고, 출력시에는 문자열 뒤에 조건에 맞는 문자들을 붙여 출력한다.
>>2-2 : 두 번째 방법 : 메모리 동적 할당
#include <stdio.h>
#include <stdlib.h> // malloc 헤더 파일 include
int main() {
char* str = (char*)malloc(sizeof(char) * 50);
scanf("%s", str);
printf("%s??!", str);
free(str) // 동적할당 해제 함수
}
문자열을 입출력하기 위해 두 번째로는 malloc()함수를 이용한 동적 메모리 할당을 이용할 수 있다. 포인터 변수 str에 malloc() 함수를 이용해 char 자료형, 50(필요한 길이)만큼의 메모리를 할당한 후, 이 포인터 변수 str을 이용해 입출력을 진행했다. 할당한 메모리는 free() 함수를 이용해 잊지말고 해제해 주도록 하자.😃