首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符串处理有关问题(高分)

2012-03-09 
字符串处理问题(高分)我有这么一串字符串abcd@bbcc@eefaf@ffefag@ffa@faffdf其中@是16进制的符号,我这里@

字符串处理问题(高分)
我有这么一串字符串     abcd@bbcc@eefaf@ffefag@ffa@faffdf      
其中@是16进制的符号,我这里@来替代显示

我想从字符串里取出除了@的其他值,然后分别赋值给
char   a[256];
char   b[256];
char   c[256];
char   d[256];
char   e[256];

请各位大侠帮忙啊


[解决办法]
C语言用 strstr 找到指定位置截断
[解决办法]
C ++ 使用 string::find() 方法就是了
[解决办法]
估計從一段英文里提取EAMIL的問題。

strstr查找吧。
[解决办法]
#include "iostream "

using namespace std;

void main()
{
char sz[] = "abcd@bbcc@eefaf@ffefag@ffa@faffdf ";

char a[256];
char b[256];
char c[256];
char d[256];
char e[256];
char f[256];

char* t = strtok(sz, "@ ");
if (t)
strncpy(a, t, sizeof(a));

t = strtok(0, "@ ");
if (t)
strncpy(b, t, sizeof(b));

t = strtok(0, "@ ");
if (t)
strncpy(c, t, sizeof(c));

t = strtok(0, "@ ");
if (t)
strncpy(d, t, sizeof(d));

t = strtok(0, "@ ");
if (t)
strncpy(e, t, sizeof(e));

t = strtok(0, "@ ");
if (t)
strncpy(f, t, sizeof(f));

cout < <a < <endl;
cout < <b < <endl;
cout < <c < <endl;
cout < <d < <endl;
cout < <e < <endl;
cout < <f < <endl;

}
[解决办法]
#include <string>
#include <iostream>
using namespace std;

int main()
{
string str( "abcd@bbcc@eefaf@ffefag@ffa@faffdf ");
string strsub[6]; //可以分解得到 6 个串
int i=0;
string::size_type index, start=0;

index = str.find( "@ "); //这个 @ 是分割字符,如果是其他串或者字符,替换即可
while (i <6 && start!=string::npos)
{
strsub[i++] = str.substr(start, index-start); //提取子串

start = index+1;
index = str.find( "@ ", start); //寻找下一个位置
}
for (i=0; i <6; i++) //输出结果
cout < <strsub[i] < <endl;

return 0;
}
[解决办法]
要赋值给别的变量,
那么取数组元素赋值过去就是了 ...

热点排行