手动计算回文的字符数
Manually count characters for a palindrome
我目前有一个程序来检测输入的字符串是否是回文。我想避免使用 strlen 方法。
int main ()
{
char string[80];
bool Beginning;
Beginning = true;
while (Beginning)
{
cout << "nEnter a stringn" << endl;
cin.getline(string, 80);
cout << "nYou entered: ";
printf(string, 80);
cout << endl;
if('E' == string[0])
{
if('N' == string [1])
{
if('D' == string[2])
break;
}
}
int len=strlen(string); //avoid this method
bool flag = true;
for (int c=0; string[c]; c++)
{
if (flag)
{
if(string[c] != string[len-c-1])
{
flag = false;
}
}
else
{
break;
}
}
if (flag)
{
printf ("nThis is a Palindromen");
Beginning = true;
continue;
}
else
{
printf("nThis is not a palindromen");
Beginning = true;
continue;
}
cin.get();
}
}
我尝试过以下手动计数:
while (string[c] < ' ') {
c++;
int len = string[c];
}
上面搞砸了程序准确判断字符串是否是回文的能力,它会说它们都不是,或者都是。
如果我
理解正确,您需要正确的实现len
这将完成这项工作:
len =0;
while (string[++len] );
您所需要的只是检查空终止(因为您使用的是 C 字符串)
建议:请不要混用C&C++!
相关文章:
- C++:正在检查LinkedList中的回文-递归方法-错误
- Usaco第1.6节主要回文
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 将 S1 转换为回文,并将 S2 作为其子字符串
- 数回文词
- 最长的回文子串(C++帮助)
- 有人可以详细解释这个回文代码是如何工作的吗?
- 回文递归版本
- 如何检查C ++ STL列表是否为回文?
- 回文数在 1 到 10000 之间
- 回文,不包括特殊字符和空格
- 你如何打印出使用数组删除某些字符的回文
- 用于识别回文字符数组的递归函数
- 手动计算回文的字符数
- c++ cin.ignore忽略空格、数字和字符来测试回文
- 回文查找器:非字母数字字符删除问题
- 回文程序和 C 样式字符串中不需要的字符
- 通过重新排列字符找到字符串中的所有回文子字符串
- 下一个回文 .奇怪的字符输出
- DP方法,用于生成字符串回文时应添加的最小字符数