0

私はc++ win32 APIを使用しています。

を使用してキャラクターを分割したいdelimiter

あのキャラみたい"CN=USERS,OU=Marketing,DC=RAM,DC=COM"

文字を最初のコンマ (,) の後に分割したい。つまり、必要なのは

OU=Marketing,DC=RAM,DC=COM.

私はすでに関数を試しstrtokましたが、CN=USERS のみを分割しました。

どうすればこれを達成できますか?

4

2 に答える 2

3

以下のコードを試してみてください。各項目 (「,」で区切られた) を簡単に取得できるはずです: 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をご覧ください

于 2012-11-19T04:58:32.367 に答える
1

使用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
于 2012-11-19T22:33:17.807 に答える