问题描述
- C++ 中的字符串 怎么让它遇到分号就 截取一段出来
-
一个字符串,怎么让它遇到分号就 截取一段出来出来?例如:str = “abc@163.com;def@163.com;ghi@163.com;”
一次循环截取获得:abc@163.com
第二次循环获得:def@163.com
第三次循环获得:ghi@163.com
解决方案
我的问题已经解决了,感谢大家的帮助。
以下是我自己写的代码,请大家多多指教;
int bj=0;
int ej=0;
while(ej = str.find(";",bj))
{
if (ej<1)
{
break;
}
string tempCCre = str.substr(bj,ej-bj);
//这里添加处理的代码,tempCCre就是获得的子串;
bj = ej+1;
ej = 0;
}
解决方案二:
http://blog.csdn.net/autocyz/article/details/42391155
解决方案三:
#include <iostream>
using namespace std;
int main()
{
char str[] = "abc@163.com;def@163.com;ghi@163.com;";
char tmpstr[128] = "";
char *p = str;
char *ptmp = tmpstr;
while (*p != '')
{
if (*p == ';')
{
*ptmp = '';
ptmp = tmpstr;
// 这里写你的处理逻辑
printf("%sn", tmpstr);
}
else
{
*ptmp++ = *p;
}
p++;
}
return 0;
}
还有其他办法,比如用string类的find和substr组合,那个你自己搜吧。
时间: 2025-01-01 09:34:39