首页
社区
课程
招聘
[旧帖] [讨论]判断字符串是否为"回文" 0.00雪花
发表于: 2009-6-16 10:52 5939

[旧帖] [讨论]判断字符串是否为"回文" 0.00雪花

2009-6-16 10:52
5939
小弟初学c++编程,自己做了一个练习
输入一段字符判断字符是否为"回文"
希望给位大哥帮我看看我写的代码
顺便能给小弟提供更好的方法,小弟在此谢过。
小弟代码写的比较烂。还望各位大哥不要拍砖。。。
/*
实现功能:判断输入的字符是否为回文
即正序字符与反序字符一样
例如:leeeeeeeel
*/
#include <iostream>
using namespace std;

void main()
{
  int i;
  int j = 0;
  int nType = 0;
  char str[10];
  char temp[10];
  cout << "please input string:" << endl;
  for( i = 0; i < 10; i++ )
    cin >> str[i];

  for( i = sizeof(str); i >= 0; i-- )
  {
    if( j < sizeof(temp) )
    {
      if( i == sizeof(str) )
      {
        temp[sizeof(temp)] = str[i];
      }
      else
      {
        temp[j] = str[i];
        j++;
      }
    }
  }

  for( i = 0; i < 10; i++ )
  {
    if( str[i] != temp[i] )
    {
      nType = 1;
      break;
    }
  }

  cout << "正序字符:" << endl;
  for( i = 0; i < sizeof(str); i++ )
  {
    cout << str[i];
  }
  cout << endl << "反序字符:" << endl;
  for( j = 0; j < sizeof(temp); j++ )
  {
    cout << temp[j];
  }
  cout << endl;

  if( nType != 0 )
  {
    cout << "最终判定结果:非回文" << endl;
  }
  else
  {
    cout << "最终判定结果:回文" << endl;
  }
}

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 102
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
我 写的..大家看看哪里不对..
#include <stdio.h>
#include <string.h>
main()
{
char a[]="5leael5";
int length = strlen(a);
int i;
int ret = 1;
for(i=0;i<(length/2);i++)
{
if ( a != a[length-1-i])
{

ret = 0;
continue;
}

}
if(ret)
puts("is huiwen");
else
puts("is not huiwen");


}
2009-6-16 11:37
0
雪    币: 239
活跃值: (12)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
楼上的兄弟你好。
for(i=0;i<(length/2);i++)
length / 2是什么目的啊?
没明白。望能解答。
谢谢
2009-6-16 11:52
0
雪    币: 140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
太简单了吧,我认为应该先判断输入字符个数,奇数个的话不可能是回文,偶数个的话就拿第一个和最后一个比较,第二个和倒数第二个比较,依次进行,只要有一个不等就break
2009-6-16 12:07
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上说的MS不是吧,回文跟字符长度的奇数偶数没关系。比如:12321 跟123321都是回文啊。
2009-6-16 12:34
0
雪    币: 1491
活跃值: (975)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
6
不懂什么是回文。。。
2009-6-16 12:58
0
雪    币: 22
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
continue 换成break比较好吧。。
2009-6-16 16:21
0
雪    币: 22
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
比较的次数,拿前一半和后一半比较。
2009-6-16 16:24
0
雪    币: 140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那是你的理解,我虽然没查过回文是怎么定义的,但按你这么说只有一个字符也算咯,只有一个字符的话回的含义在哪,个人理解
2009-6-16 17:39
0
雪    币: 141
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
我还上工学院的时候就做过的小作业而已
2009-6-16 18:10
0
游客
登录 | 注册 方可回帖
返回
//