ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1067)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (180)
      • Unreal (69)
      • Unity (100)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (346)
      • C++ (167)
      • C# (88)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • C
  • 알고리즘
  • 유니티
  • Unity
  • 백준
  • 언리얼
  • string
  • 문자열
  • 배열
  • 포인터
  • SQL
  • 티스토리챌린지
  • C++
  • c#
  • 함수
  • 파이썬
  • 프로그래머스
  • 클래스
  • 오블완
  • 그래픽스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

코딩테스트/공통

C++ stringstream 사용법 (문자열에서 공백 제외 추출, 특정값)

2022. 8. 11. 21:48

1) 문자열을 나누는 stringstream

C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용된다. stringstream에서 공백과 '\n'을 제외하고 문자열에서 맞는 자료형의 정보를 빼낸다. 

˙ #include <sstream>  전처리 헤더를 필수로 포함해야 한다. 

˙ stream.str(string str) 은 현재 stream의 값을 문자열 str로 바꾼다. 

int num;
string str = "123 456";
stringstream stream; 
stream.str(str);
while(stream1 >> num ) cout << num << endl; 

2) stringstream 초기화

stringstream은 stream.str(""); 구문을 통해 또는 생성자로 초기화 한다. 

int num;
string str = "123 456";
stringstream stream; // stringstream stream(str);
stream.str(str);
while(stream1 >> num ) cout << num << endl;
stream.str("");//초기화

3) stringstream을 활용해 날짜를 초로 바꾸기 

#include <iostream>
#include <sstream>
#include <string>
#include <vector> 
using namespace std;
int main(void){
	
	vector<long long> time;
	string str = "2019:06:30 12:00:30";//연 월 일 시 분 초  
	for(int i=0;i<str.size();i++){
		if(str[i] == ':') 
		str[i] = ' ';
	}
	
	long long num  = 0;
	stringstream stream;
	stream.str(str);
	while(stream >> num){
		time.push_back(num);
	}
	
	long long second = 0;
	second  += time[0] * 365 *  24 * 60 * 60;//연 
	second += time[1] * 30 * 24 * 60 * 60;//월 
	second += time[2] * 24 * 60 * 60;//일 
	second += time[3] * 60 * 60;//시 
	second += time[4] * 60;//분 
	second += time[5];//초 
	
	cout << second << endl; 
	return 0;
}

출처: https://life-with-coding.tistory.com/403 [코딩젤리:티스토리]

저작자표시 (새창열림)

'코딩테스트 > 공통' 카테고리의 다른 글

문자열 (소문자 대문자 변환) transform 함수  (0) 2022.08.12
최솟값과 최댓값 표현하기  (0) 2022.08.12
C++ max_element(), min_element() 최대값, 최소값  (0) 2022.08.11
백준 골5 달성  (0) 2022.06.30
C++ 문자열 공백 제거하는 방법  (0) 2022.06.27
    '코딩테스트/공통' 카테고리의 다른 글
    • 문자열 (소문자 대문자 변환) transform 함수
    • 최솟값과 최댓값 표현하기
    • C++ max_element(), min_element() 최대값, 최소값
    • 백준 골5 달성
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바