在今天的编程中遇到的问题,mark一下,关于c++中字符串中是汉字的时候的匹配和查找。
在ubuntu下,一个汉字在c++程序中占三个字节。比如:string s=“中国人”,s[0]就不能表示“中”这个汉字,如果试图取得第一个字的话,s[0]是行不通的,因为这个是按字节读的,这样只能读出一个字节。根据网上搜索了相关资料,有的地方说这样是可以的”
string s2 =;
s2[0] = s[0];
s2[1] = s[1];
s2[2] = s[2];
经验证,这样也是行不通的。而这样是可以的,string s3 = s.substr(0,3);
这样s3的内容就是“中”了
#include <iostream>
#include <string>
using namespace std;
int main(){
string s = "中国人";
string s2;
s2.assign(s.substr(0,3));
cout