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