상세 컨텐츠

본문 제목

[C /C++] 큰 숫자, 여러 줄의 문자열, 공백 처리 , 스트링 입출력

Study/Language

by Arq.Dev5igner 2024. 10. 25. 22:54

본문

알고리즘 문제를 풀다보면  큰 숫자를 입력, 출력이 필요할 때가 있다. 

(일에 치여살다보니) PS 할때마다 까먹어서 매번 검색해서 찾아본다. 

이제 좀 그럴때는 지나지 않았나 싶어 가오가 상해 내블로그에 남기기로 한다. 

 

  • 큰 숫자
#include <stdio.h>

int main(void)
{    
	//double 형은 %lf로 받은 후 %lf로 입출력 .
    double f64A;
    scanf("%lf", &f64A);
    printf("%.11lf", f64A);
    
    //long long int 형 같은 경우는 %lld로 입출력.
    long long int i128B;
    scanf("%lld", &i128B);
    printf("%lld", i128B);
    
    //큰수, 소수점 출력 
    long ln = 123456789L;
    long long lln = 1234567890123456789LL;
    double dx = 1.234567890123456789;
    long double ldx = 1.234567890123456789L;
    
    printf("ln = %d\n", ln); //ln = 123456789
    printf("ln = %ld\n", ln); //ln = 123456789
    printf("lln = %lld\n", lln); //lln = 1234567890123456789
    printf("dx = %.9f\n", dx); //dx = 1.234567890
    printf("dx = %.19f\n", dx); //dx = 1.2345678901234566904
    printf("ldx = %.19Lf\n", ldx); //ldx = 1.2345678901234567890
    
    return 0;
}

 

 

  • 문자/문자열
#include <stdio.h>
#include <conio.h> //_getch()와 _putch() 때문
 
int main(void)
{
	char ch; //'문자'는 'char형 변수'라는 것에 유의
	scanf("%c", &ch); //'문자'는 'char형 변수'이기 때문에 &를 붙여 주소를 보내주어야 한다.
	printf("%c", ch); 
    
    
    //문자열 자동 공백 구분(whitespace(공백) 전까지의 문자열만 입력받음)
    char chArr[50];
    scanf("%s", chArr); //Hello World! 입력 //문자열을 읽어서 문자배열 s[]에 저장
    printf("%s", chArr); //Hello 만 출력 //배열 s[]에 저장되어 있는 문자열을 출력
 
 
    int i32Char; //정수형에 주의
    while( (i32Char = getchar()) != EOF)  //getchar()은 하나의 문자를 읽는다.
    //콘솔에서 EOF는 Ctrl+Z를 누르면 입력된다.
    putchar(i32Char); //하나의 문자를 쓴다.
 
 
    char buf[100];
    gets_s(buf, size); //한 줄의 문자열을 읽어서 문자 배열 s[]에 저장
    puts(buf); 배열 s[]에 저장되어 있는 한 줄의 문자열을 출력
 
 
 	int ch;
    while( (ch = _getch()) != 'q') //EOF사용 불가, Ctrl도 하나의 문자로 입력되기 때문
    _putch(ch);

    return 0;
}

 

 

 

 

입출력 함수
설명
int getchar(void)
하나의 문자를 읽어서 int형으로 반환한다.
('A'라면 65가 들어올 것이고 char형에 담으면 'A'가 될 것이다.)
void putchar(int c)
변수 c에 저장된 문자를 출력한다.
int _getch(void)
하나의 문자를 읽어서 int형으로 반환한다.(버퍼를 사용하지 않음)
void _putch(int c)
변수 c에 저장된 문자를 출력한다. (버퍼를 사용하지 않음)
scanf("%c", &c)
하나의 문자를 읽어서 변수 c에 저장한다.
printf("%c",c)
변수 c에 저장문자를 출력한다.
int scanf("%s",s) 문자열을 읽어서 문자배열 s[]에 저장
int printf("%s",s) 배열 s[]에 저장되어 있는 문자열을 출력
char *gets_s(char *s, int size) 한 줄의 문자열을 읽어서 문자 배열 s[]에 저장
int puts(const char *s) 배열 s[]에 저장되어 있는 한 줄의 문자열을 출력

 

위의 노란표는 (C언어) '문자와 문자열' 개념 정리 : 네이버 블로그 참고

관련글 더보기