解决办法:
//输入时 char str[55]; scanf("%s", str); s = str; //之后就可以用string的操作对s进行操作了 //输出时 printf("%s\n", s.c_str());//printf不能直接输出string类型,要 s.c_str()转化删除字符串中的一段字符:
s.erase(s.find_last_of('\\'), s.length()); //删除最后一个\后面的字符。如 aa\dd\cc 变为aa\dd //erase第一个参数为删除开始的位置,第二个参数为删除多少个字符str.substr(startpos, length); 其中 startpos 是起始字符的序号,length是[从startpos开始]取的字符串长度(包括startpos )
如果要取得 str 中序号 m 到 n 之间(不包括n)的子字符串需要用 str.substr(m, n-m);
string sub_string = v[i].substr(v[i].find_last_of('\\')+1, v[i].length()); //求字符串,的子串。如:aa\dd\cc变为:cc对于string对象进行操作删除多余的字符后(例如a+++b++c,变成a+b+c时,需要最后需要使用到resize),需要使用到s.resize(n) 例如: 反转单词顺序