PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2008/11/17 21:00:18
Name EZrock
Subject C++ 스트링과 맵 질문입니다.
1. char[]타입의 문자열이 아닌 string으로 선언하는 문자열인데

내용이 정해져있고 중간중간에 ,로 구분되어 있습니다.

예를 들면

일이삼, 123, 一二三 이런식으로 저장된 문자열이 있는데

이걸 ,(콤마)단위로 구분을 하고 싶은데 어떤식으로 해야 할 지 모르겠습니다.

char[]타입이면 strtok를 쓰면 된다고 하는데 string으로 처리를 해야 되고

문제는 저 한줄이 아니고 저것과 같은 타입의 자료가 여러개라는 것입니다.

그래서 strtok가 사용 가능하면...
while( str != "") {
strtok(hangul,",");
strtok(arabian,",");
strtok(hanja,"");
}

이런식으로 문자열 하나를 토큰 하나하나로 구분할 수 있게 쓸수 있는 함수가 있는지 알고 싶습니다.

2. 어떤 문제가 있는데 유일한 식별자를 가진다라고 해서 key값으로 구분하는 맵을 많이 쓰라고 하는데

여러가지 자료형이 있는데(이를테면 한 학생의 학번이 식별자면 이름도 있고 성적도 있고 신상명세...쭉 있다고 치겠습니다.) 그 중에서 하나를 key로 쓰면 나머지 값은 어떻게 명시를 해줘야 할까요?

클래스의 멤버변수들이 주요 정보면 그냥 map<key ,class_name object> 이런식으로 사용을 해야 하는지...사용 방법을 좀 알려주셨으면 합니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/11/17 21:15
수정 아이콘
strtok을 써도 되는데, 그럴려면 string 을 char* 에 복사해서 토크나이즈 하는게 일반적이라서 비효율 적....
스트링을 쫙 훑으면서 , 가 나올 때마다 위치를 기억하고 있다가 substr 등으로 짤라서 출력하면 되죠?
간단한 for 문이면 되니까 [...] 생각해보시면 짤 수 있을 것 같습니다.

편법이 있는데...... 다음과 같이 해보세요 -0-
#include <sstream>
string abc = "윤하,다비치,원더걸스,소녀시대", temp;
for(int i=0; i<abc.length(); ++i) if(abc[i] == ',') abc[i] = ' ';
istringstream sin(abc);
while(abc >> temp) cout << temp << endl;
08/11/17 21:16
수정 아이콘
2. 키가 여러개면 단순히 map 하나만 가지고는 검색을 할 수 없습니다.
키가 하나면 맵을 써서 로그시간에 검색이 되지만, 키가 여러개이고 각각의 키로 검색 삭제등이 모두 되게 하려면, 조금 어려운 문제가 됩니다.
[...]
08/11/17 21:37
수정 아이콘
Aleph.님// 키는 학번이란 유일한 식별자가 있고 그 외의 정보는 추가적으로 관리해야 될 정보입니다.

한 학생의 정보를 관리해야 되는데 map으로 쓰면 학번만으로 관리하기 용이하다고 해서 질문을 올린것입니다.
08/11/17 22:56
수정 아이콘
아 그렇군요 :) 그럼 구조체나 클래스로 묶으시면 되겠네요~
08/11/17 23:33
수정 아이콘
Aleph.님// 네 드디어 질문의 핵심에;;

클래스로 묶었을 경우 맵으로 구현할 때 어떤식으로 사용해야 하는지를..;

map<key ,class_name object> 이런식으로 사용하면 될까요?

그리고 key값이 2개로 쓰일경우가 있다고 가정하면 그땐 어떻게 사용해야 할까요?

map<key1,key2,object>이렇게 사용하는게 맞을런지...?
08/11/18 00:15
수정 아이콘
map<key ,class_name object> 이런식으로 사용하면 될까요?
-> 될겁니다.

key 값이 2개면 pair<key1,key2>로 묶으셔야합니다.
map <pair<key1,key2>,object>
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
45212 재수에대해고민하고있습니다 [10] 가나초코렛ㅇ1788 08/11/17 1788
45211 훈훈한 내용의 만화책 좀 추천해주세요 [10] kiss2346 08/11/17 2346
45210 TV 관련 질문입니다 ~ [1] 쮜방울1551 08/11/17 1551
45209 컴 사양 좀 봐주세여.. [5] 동네강아지1729 08/11/17 1729
45208 술먹는데 버프하는 약품 질문입니다. [9] worcs2206 08/11/17 2206
45207 C++ 스트링과 맵 질문입니다. [6] EZrock2201 08/11/17 2201
45203 컴퓨터견적 두개중 어느것이 더 나을지 비교부탁드립니다 ^^ [7] 내 마음은 황무2108 08/11/17 2108
45201 수학 경우의 수 질문입니다. [6] 박진호3571 08/11/17 3571
45199 mssql 질문입니다. (DTS관련) [1] 살찐개미1553 08/11/17 1553
45198 파일 복구 가능한가요? 흐흑.. [3] 아레스1897 08/11/17 1897
45196 방위 산업체vs육군 [7] CHARA2800 08/11/17 2800
45194 We are but man, rock! [7] luvletur2303 08/11/17 2303
45193 컴퓨터를 지금 사는거랑 12월이나 1월까지 기다리는 거랑 어느 쪽이 좋을까요? [6] GrayScavenger2129 08/11/17 2129
45192 답답합니다..여자(?)문제입니다..스크롤 주의. [30] Rainism2629 08/11/17 2629
45191 간단한 플래쉬제작해주실분..ㅜㅜ [5] jinhosama1978 08/11/17 1978
45190 컴퓨터 본체를 맞춰야하는데.. [1] 동네강아지1846 08/11/17 1846
45189 거기가 가렵습니다.ㅠㅠ [9] 한마 유지로2591 08/11/17 2591
45188 대학 학과 선택에 대해서 조언좀 해주세요. [5] MayBee1880 08/11/17 1880
45186 교과서 명칭에 대하여 [2] happyend2098 08/11/17 2098
45185 언데 선데나 견제하려는데 상대 사냥코스를 어떻게 알 수 있을까요? [+기타질문] [4] GrayScavenger2126 08/11/17 2126
45184 컴퓨터 고장 문제 질문입니다.(파워문제?) [1] 정지연2116 08/11/17 2116
45183 LCD모니터 질문입니다. [1] Cazellnu 눈꽃슬1936 08/11/17 1936
45181 컴퓨터견격을 내 봤습니다 [9] 내 마음은 황무2141 08/11/17 2141
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로