我在比较 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);