문자열 더블포인터 사용시 에러

yeonjooo의 이미지

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;
}

이런 코드인데요. <에러 부분>에서 "문자열의 문자를 읽는 동안 오류가 발생했습니다" 라는 에러 메시지가 뜹니다. 어느 부분에서 잘못되었을까요 ㅠㅠ?

yeonjooo의 이미지

해결되었습니다~

ozon1000의 이미지

알수있을까요?