1、string
//截取某字符前的字符串
string str =
"dsfsdf.abc"
;
str.substr(0,str.find(
'.'
));
string str="123abc456";
int i=3;
1 取字符串的前i个字符
str=str.Substring(0,i); // or str=str.Remove(i,str.Length-i);
2 去掉字符串的前i个字符:
str=str.Remove(0,i); // or str=str.Substring(i);
3 从右边开始取i个字符:
str=str.Substring(str.Length-i); // or str=str.Remove(0,str.Length-i);
4 从右边开始去掉i个字符:
str=str.Substring(0,str.Length-i); // or str=str.Remove(str.Length-i,i);
5 如果字符串中有"abc"则替换成"ABC"
str=str.Replace("abc","ABC");
2、char *
对于char*类型的字符串,采用函数strtok或者strtok_s函数来执行字符串的截取。
目标字符串: char dest[1024] = "123@234@345,qwere";
char* str1 = strtok(dest, "@");
char* str2 = strtok(NULL, "@"); //注意第一参数变为了NULL
char* str3 = strtok(NULL, ",");
char* str4 = strtok(NULL, "\0");
或者也可以使用strtok_s函数,不该该函数需要用在高版本的运行环境中,VC++6.0是不识别该函数的。用法如下:
char* safeBuffer;
char* str1 = strtok_s(dest, "@", &safeBuffer);
char* str2 = strtok_s(NULL, "@", &safeBuffer); //注意第一参数变为了NULL
char* str3 = strtok_s(NULL, ",", &safeBuffer);
char* str4 = strtok_s(NULL, "\0", &safeBuffer);
3、CString
CString str =
"dsfsdf.abc"
;
str.left(str.find(
'.'
));
CString a="322,787,123";
int n=a.Find(","); //查找第一个","的位置
b=a.left(n); //将","左边的值取出给b
int length=a.Delete(0,n); //找出","右边的字符串位数
a = a.Right(length); //将","右边的字符串取出做为新的字符串