C++ 中的字符串 怎么让它遇到分号就 截取一段出来

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;
    }

#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 != '\0')
    {
        if (*p == ';')
        {
            *ptmp = '\0';
            ptmp = tmpstr;

            // 这里写你的处理逻辑 
            printf("%s\n", tmpstr);

        }
        else
        {
            *ptmp++ = *p;
        }

        p++;
    }

    return 0;
}

还有其他办法,比如用string类的find和substr组合,那个你自己搜吧。