【发布时间】:2013-10-05 00:22:47
【问题描述】:
这是实际代码,因为它似乎是特定于这里的某些东西。
#include <iostream>
#include <string.h>
using namespace std;
int main()
cout << " Just say \"Ready\" when you want to start.";
char tempReady[20];
cin >> tempReady;
length = strlen(tempReady);
char* ready = new char[length+1];
strcpy(ready, tempReady);
while((strcmp(ready, "Ready")||strcmp(ready, "ready"))!=0)
{
cout << "Try again.";
cin >> tempReady;
length = strlen(tempReady);
delete[] ready;
ready = new char[length+1];
strcpy(ready, tempReady);
}
cout << "Success";
有人发现有什么不对吗?
【问题讨论】:
-
你没有使用
std::string。 -
我不确定——你的程序在我尝试时进入循环(在 MacOS/X 下使用 g++-4.2)。我的猜测是,也许标准输入在字符串的末尾包含了一个回车符或换行符——做一个 cout
-
它在 Linux 上的
gcc中为我工作。 -
您的代码对我有用,问题一定出在您未发布的代码中。尝试发布完整的程序。
-
要回答这些问题,您需要发布您的实际程序。当然 strcmp 对第一个大写并不挑剔,它希望所有字母都完全匹配。您的问题与您认为的不同,但如果没有看到实际代码,没有人可以帮助您解决这些问题。
标签: c++ string comparison string-comparison strcmp