1 string::data()所返回的指针不应该被“长期”使用,因为对string的操作可能导致string重新分配字符内存。比如说,当输入字符数>20超过其默认分配的内存空间时,string有可能重新申请新的足够存放所有字符的内存空间,使得string::data()原来返回的内存地址失效。
2 string::data()返回的指针指向的字符串不是c语言风格的字符串,即它不一定以'\0'结束,因此使用strcmp等处理c风格字符串的函数对string::data()的返回值进行处理时有可能出错。即使先cin>>x>>y再取指针也存在出错的可能。正确的做法是使用string::c_str()函数。