반응형
#include <iostream>
#include <string>
using namespace std;
struct node {
string before;
string after;
int size;
};
node words[5] = {
{"KFC", "#BBQ#", 3},
{"MC", "#BBQ#", 2},
{"BICMAC", "#MACBOOK#", 6},
{"SHACK", "#SHOCK#", 5},
{"SONY", "#NONY#", 4}
};
int main() {
string longsent = "ILOVEKFCANDMC!!";
cin >> longsent;
//ILOVEKFCANDMC!!
for (int i = 0; i < 5;i++) {
int index = 0;
while (index != -1) {
index = longsent.find(words[i].before, index);
if (index == -1) break;
longsent.erase(index, words[i].size);
longsent.insert(index, words[i].after);
index += 1;
}
}
cout << longsent;
}
ㅎ훌륭해! 잘했다
node 로 만드니까 엄청 편해짐 :ㅇ
5번 반복해야하는 명령문들
find(KFC~ 로 금지어 찾고
erase해서 무한반복하지 않도록 하고
insert해서 #BBQ#등을 새로 넣는다
insert는 덮어씌우는 것이 아니라 말 그대로 추가되서
만약 erase로 안 없애면
#BBQ#KFC
#BBQ##BBQ#KFC
이런식으로 계속 추가되서 루프에서 벗어나질 않음
index = longsent.find(words[i].before, index);
if (index == -1) break;
longsent.erase(index, words[i].size);
longsent.insert(index, words[i].after);
find함수
erase함수
insert함수 기억하자!
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
백준 15663 n 과 m 9번 (0) | 2021.01.18 |
---|---|
1182 백준 부분집합의 합 (0) | 2021.01.16 |
디폴트 생성자 Queue() : {} (0) | 2020.08.12 |
boj 백준 9012 스택 괄호 VPS 문제 (0) | 2020.08.08 |
phrasing 문자열 안에 특정 문자 찾기 (0) | 2020.06.26 |
counting sort 문제 풀어보기 (0) | 2020.06.26 |
기본 해쉬함수 사용하기 B-> 10 (0) | 2020.06.26 |
head[100]과 myalloc()해보기 (0) | 2020.06.26 |