문제 링크
난이도 : Lv. 0
문제 내용
문제 설명
단어가 공백 한 개로 구분되어 있는 문자열 my_string
이 매개변수로 주어질 때, my_string
에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string
은 영소문자와 공백으로만 이루어져 있습니다.- 1 ≤
my_string
의 길이 ≤ 1,000 my_string
의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.
입출력 예
my_string | result |
---|---|
”i love you” | [“i”, “love”, “you”] |
“programmers” | [“programmers”] |
문제 분석
공백으로 나누기 ⇒ strtok
작성한 코드
#include <string>
#include <vector>
#include <cstring>
using namespace std;
vector<string> solution(string my_string) {
vector<string> answer;
char charr[1001];
strcpy(charr, my_string.c_str());
char* ptr = strtok(charr, " ");
while(ptr != NULL){
string temp(ptr);
answer.push_back(temp);
ptr = strtok(NULL, " ");
}
return answer;
}
strcpy랑 strtok 둘 다 cstring 헤더에 있음…
string to char array : strcpy(ch_array, string.c_str());
char pointer to string : string str(ch_pointer);
우수 코드 분석
#include <bits/stdc++.h>
using namespace std;
vector<string> solution(string my_string) {
regex rx(" ");
sregex_token_iterator iter(my_string.begin(), my_string.end(), rx, -1), end;
return {iter, end};
}