1

C++ で 2 つの文字列を比較すると、奇妙な問題が発生します。

printf ステートメントから確認した "dreamy" を指している c。これを「夢のような」文字列と比較したいのですが、毎回別の部分に入り、一致しないことを示しています。

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 に答える