C++ 检查字符串是否匹配";完",;,如果有,就退出
我有以下代码:C++ 检查字符串是否匹配";完",;,如果有,就退出,c++,exit,palindrome,C++,Exit,Palindrome,我有以下代码: int main () { char string[80]; bool Restart; Restart = true; while (Restart) { cout << "Enter a string\n" << endl; cin.getline(string, 80); cout << "\nYou entered: "; printf(string, 80);
int main ()
{
char string[80];
bool Restart;
Restart = true;
while (Restart)
{
cout << "Enter a string\n" << endl;
cin.getline(string, 80);
cout << "\nYou entered: ";
printf(string, 80);
cout << endl;
int len=strlen(string);
bool flag = true;
for (int c=0; c!=len/2; c++)
{
if (flag)
{
if(string[c] != string[len-c-1])
{
flag = false;
}
}
else
{
break;
}
}
if (flag)
{
cout <<"\nThis is a Palindrome\n" << endl;
Restart = true;
continue;
}
else
{
cout << "\nThis is not a palindrome\n" << endl;
Restart = true;
continue;
}
cin.get();
}
}
int main()
{
字符串[80];
bool重启;
重启=真;
while(重启)
{
cout这里有一个解决方案,如果“END”,它将终止while循环创建一个helper方法来解析END
。请注意,这是一个非常特定于问题的方法,并且不可重复使用。与Beta的解决方案不同,它的维护难度更大,但在开始编写更大的程序之前,您不必担心维护问题
bool Terminate(char* string, int len)
{
bool retval = false;
char* c = string;
if( 3 == len ) // "END\0"
{
if('E' == string[0])
{
if('N' == string [1])
{
if('D' == string[2])
{
retval = true;
}
}
}
}
return retval;
}
然后在int len=strlen(string);
之后使用它,如下所示:
if(Terminate(string, len))
{
break; // Exit while loop
}
确保在主函数之前声明Terminate
这是一个足够的提示吗
#include <iostream>
int main()
{
char A[] = "END";
char B[10];
std::cin >> B;
std::cout << strcmp(A,B) << std::endl;
return(0);
}
#包括
int main()
{
字符A[]=“结束”;
charb[10];
标准:cin>>B;
std::cout为什么不使用std::string?因为std::是不需要的,而且是打字的浪费:P@Prstorero可以说这是家庭作业……但你的缩进是罪恶的:你误解了std::
,不缩进你的代码对我们来说是不礼貌的。@Beta:我完全同意:好的缩进有助于理解代码!事实上,我如果没有缩进,我很难阅读自己的代码,更不用说其他人的代码了。一旦代码正确缩进,就很容易根据结构发现某些错误。当然,这不适用于初学者…strlen(“END”)
==3,而不是4。这非常适合我的需要。我运行了程序,它正确地识别了回文,并在只输入end-end时退出。好的是我已经理解了if语句的工作原理,所以我应该全部设置:)我感谢您的帮助。您的解决方案仅采用大写。mor可靠的解决方案是在比较之前将字符串全部转换为大写。@Thomas,将全部转换为大写将违背我的赋值要求。如果所有小写字母都是“end”是类型化的,它应该继续,但如果所有大写字母都是类型化的,则退出。因此,如果所有内容都转换为所有大写字母,则将无法达到目的,但我确实看到了使用它的目的。仅供参考,这可能会导致缓冲区溢出。我建议使用std::cin.get()
,因为您可以限制字符数。