문자열 더블포인터 사용시 에러
글쓴이: yeonjooo / 작성시간: 일, 2016/03/13 - 7:28오후
int main() {
set <string> dic;
set<string>::iterator it;
string text;
char *token,*rest;
token = new char();
while (getline(cin, text)) {
token= strtok_s((char*)text.c_str(), " ", (char**)&rest);
while (1) {
checkText(&token);
if (token != NULL) {
dic.insert(token);
cout << token << endl;
}
else
break;
token = strtok_s((char*)rest, " ", (char**)&rest);
}
}
.........
}
void checkText(char** t) {
char *text =*t;
string str(text);
/*문자열 앞의 특수문자,숫자 제거*/
if ((65 > str[0]) || (122 < str[0]) || (90 < str[0] && 97 > str[0]))
str.erase(0);
/*문자열 뒤의 특수문자,숫자 제거*/
int size = str.length()-1;
while ((65 > str[size]) || (122 < str[size]) || (90 < str[size] && 97 > str[size])) {
str.erase(str[size]);
size = str.length() - 1;
}
text = (char*)str.c_str();
int i = 0;
/*대문자 -> 소문자*/
while (text[i] != NULL) {
if ((65 <= text[i]) && (90 >= text[i])) {
(char)text[i] += 32;
}
i++;
}
strcpy_s((char*)t,i+1, text);////////<에러 부분>
return;
}이런 코드인데요. <에러 부분>에서 "문자열의 문자를 읽는 동안 오류가 발생했습니다" 라는 에러 메시지가 뜹니다. 어느 부분에서 잘못되었을까요 ㅠㅠ?
Forums:


해결되었습니다~
해결되었습니다~
어떻게 해결되었는지...
알수있을까요?
댓글 달기