C++ 완벽한 replaceAll 구현하기
C/C++ 는 문자열을 다루긴엔 정말 성가십니다. 심지어는 Java나 Python에도 기본으로 제공하는 대상이되는 문자열을 모두 치환하는 replaceAll api도 없습니다,, 아니, 정확히는 문자열이 아닌, 문자 1개를 교체해 주지만요,, 아래처럼 x에 해당하는 모든 문자의 위치를 while로 찾고, 찾은 위치의 문자를 y로 교체 합니다. #include #include int main() { std::string s = "C**"; std::string x = "*", y = "+"; size_t pos; while ((pos = s.find(x)) != std::string::npos) { s.replace(pos, 1, y); } std::cout
OpenCSV로 쌍따옴표(Double quote)와 개행(Carriage return)이 포함된 CSV 파싱하기
포스팅 제목부터 범상치 않은데요, CSV파일을 다루면서 파싱하는데 어려움이 있던 부분을 포스팅합니다. Java OpenCSV 라이브러리를 사용했구요, Gradle에서 아래와 같이 추가하면 됩니다. implementation 'com.opencsv:opencsv:5.3' 문제의 CSV본문은 사람이 입력한 자연어 그대로 들어가기에 파싱되는 필드내에 콤마(,)와 쌍따옴표("), 개행(\n)까지 들어있을 수 있습니다. 예시는 아래와 같습니다. "1","김철수","일반회원","교정진료를 ""희망""합니다, 잘부탁드립니다." "2","홍길동","일반회원","스케일링을 희망합니다, 1달에 2번" 예시를 보면 쌍따옴표로 묶인 필드 내에 콤마와 개행, 심지어 쌍따옴표까지 혼합해서 나온 경우를 보실 수 있습니다. 상당히 ..