关于字符串的截取

来源:互联网 发布:react.js中文 编辑:程序博客网 时间:2024/05/16 08:53

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);        //将","右边的字符串取出做为新的字符串





原创粉丝点击