我正在使用 c++ win32 API。
我想使用delimiter
.
那个角色喜欢"CN=USERS,OU=Marketing,DC=RAM,DC=COM"
。
我想将字符分成第一个逗号(,)之后。这意味着我只需要
OU=Marketing,DC=RAM,DC=COM.
我已经尝试过strtok
功能,但它只拆分 CN=USERS。
我怎样才能做到这一点?
试试下面的代码,你应该可以很容易地得到每个项目(用','分隔):strtok版本:
char domain[] = "CN=USERS,OU=Marketing,DC=RAM,DC=COM";
char *token = std::strtok(domain, ",");
while (token != NULL) {
std::cout << token << '\n';
token = std::strtok(NULL, ",");
}
std::stringstream 版本:
std::stringstream ss("CN=USERS,OU=Marketing,DC=RAM,DC=COM");
std::string item;
while(std::getline(ss, item, ','))
{
cout << item << endl;
}
看看 std::getline() http://en.cppreference.com/w/cpp/string/basic_string/getline
使用strchr
使它变得非常容易:
char domain[] = "CN=USERS,OU=Marketing,DC=RAM,DC=COM";
char *p = strchr(domain, ',');
if (p == NULL)
{
// error, no comma in the string
}
++p; // point to the character after the comma