1

我在比较 C++ 中的两个字符串时遇到了一个奇怪的问题。

c 指向 "dreamy" ,我已经从 printf 声明中确认了这一点。现在我想将它与“梦幻”字符串进行比较,但每次它进入其他部分并显示不匹配。

Str1 和 Str2 的 cout 语句也打印相同的输出“梦幻”,但 Str1 的长度显示为 7,而 Str2 的长度为 6。

谁能告诉我是什么问题以及如何解决它。

谢谢。

        char *c;
        c = strtok (temp,",");   
                    // Here   printf ("%s\n",c);   prints    dreamy
        while (c != NULL)
        {
            std::string Str1 = std::string(c);
            std::string Str2 = std::string("dreamy");
            cout << "Str1  " << Str1 << "Len" << Str1.length() <<endl;  //  Len = 7 showing for  c = "dreamy"
            cout << "Str2  " << Str2 << "Len" << Str2.length() <<endl;  //  Len = 6 for "dreamy"
            if(Str1.compare(Str2) == 0)
            {
                cout << "Finally Match";
                presence[1] = 1;
            }
            else
                cout << " Dont Match";
            printf ("%s\n",c);
4

1 回答 1

3

Len = 7表明第一个字符串中有一个虚假字符(可能是空格或换行符)。

于 2013-04-12T11:35:06.657 回答