문자열 더블포인터 사용시 에러
글쓴이: 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:
해결되었습니다~
해결되었습니다~
어떻게 해결되었는지...
알수있을까요?
댓글 달기