字符串处理问题(高分)
我有这么一串字符串 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;
}
[解决办法]
要赋值给别的变量,
那么取数组元素赋值过去就是了 ...