C++ 字符串的截取

我有样的一个字符串"1234|200|abcd",请帮我写一个函数,以'|'为分割符号,把这个字符串截取成三段字符串.也请考虑一下,如果有更多的'|',怎么分割?

注意,不能用string 的 substr函数,因为我是做windows mobile的软件,好像用不了这个.

char a[100],b[100][100];//a是源
char c;
int i,j=0,k=0;
for(i=0;i<=99;i++)
{ b[j][k]=a[i];
if(a[i]=='|')j++,k=0;
else k++;
}
初步这样,最后得到的都在b数组里面了。不知道可不可以。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-19
可以使用c库函数的 strtok 函数,能满足你的需要。

c++ 如何截取字符串的后几位?
char *substrend(char * str, int n);\\x0d\\x0a\\x0d\\x0achar substrend(char *str, int n)\\x0d\\x0a{\\x0d\\x0a char * substr = (char*) malloc (n+1);\\x0d\\x0a int length = strlen(str);\\x0d\\x0a if(n >= length)\/\/若截取长度大于字符串长度,则直接...

c++怎么提取字符串的一部分
C++的string常用截取字符串方法有很多,配合使用以下两种,基本都能满足要求:find(string strSub, npos);find_last_of(string strSub, npos);其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子字符串首次出现的位置,否则返回-1;注:(1)find_last_of的npos为从末尾开始寻找的位置。(...

C++如何截取字符串中从a位置到b位置
(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于b char dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,p++) *p = str[i];\/\/截取到dest[N]p = '\\0';方法3:\/\/...为了说明情况,假如有N>...

C++中怎样截取字符串?
利用CString类的成员函数Trim把空格去掉,然后统计行的字符数length,按照长度2,14,14,等划分成一个CString数组(可以用Mid成员函数)。然后利用把CString转化成char类型数组,利用atof函数把该数组的数转化数值,然后判断观测值,大于1的data,放入到data1【】数组中即可。C语言是一门通用计算机编程语言...

C++如何截取字符串中从a位置到b位置
方法1:\/\/...为了说明情况,假如有b>a>0,字符串str[]长度大于bchar *p;p = &str[a];*(p+(&str[b]-&str[a] + 1) = '\\0'; \/\/截取到指针p方法2:\/\/...为了说明情况,假如有N>b>a>0,字符串str[]长度大于bchar dest[N];char *p;int i;p=dest;for(i=a;i<=b;i++,...

C++字符串截取
可以用substr这个方法,有两个输入参数分别为起始地址和截取的长度。s2 = s1.substr(0,3);s3 = s1.substr(4,3);如果写的更通用一点,就是先查找“+”的位置,然后在分隔。size_t iPos = s.find("+");s2 = s1.substr(0, iPos);s3 = s1.substr(iPos+1, s1.length()-iPos-1);

C++中截取字符串的方法有哪些
纯C++可以使用 substr string a = "01234567";string b = a.substr(2, 6);

c++字符串截取
字符串的存储。 c\/c++里面斜杠是转义符,因此所检阅的字符串中如何有“\\”的话,比如是这样的格式: ***\\\\***\\\\***\\\\**。 否则你应该按字节处理。如果是c++,那么用类库就可以解决。下面的例子通过stringstream转储string,然后分割存储到vector中,最后数数vector的size,然后-1,就是原来字符串...

c++里面MFC字符串的截取
MFC字符串类有Find正向查找,ReversFind反向查找,Left左截取,Right右截取,Mid任意位置截取函数,配合使用就可以实现

c++ 如何截取字符串的后几位
length = strlen(str);if(n >= length)\/\/若截取长度大于字符串长度,则直接截取全部字符串 { strcpy(substr, str);return substr;} int k = 0;for(int i = strlen(str) - n - 1; i < strlen(str); i++){ substr[k++] = str[i];} substr[k] = '\\0';return substr;} ...

相似回答
大家正在搜