C++实现判断字符串是否回文实例解析

 更新时间:2014年07月17日 15:44:46   投稿:shichen2014  
这篇文章主要介绍了C++实现判断字符串是否回文,其中采用了数据结构中栈以及过滤字符等技术,,需要的朋友可以参考下

本文实例解析了C++判断字符串是否回文的实现过程,通过数据结构中的相关例子,回文判断中采用过滤空格字符、有效字符依次入栈等方法实现该功能。

具体实例代码如下:

#include <iostream>
using namespace std;
#define Max_String_Len 100
#include "SqStack.h"
//判断字符串是否回文
bool ispalindrome(char *in_string)
{
 SqStack <char> s(Max_String_Len);
    char deblankstring[Max_String_Len], c;
 int i = 0;
 //过滤空格字符
 while(*in_string != '\0'){
    if(*in_string != ' ')
 deblankstring[i++] = *in_string;
 in_string++;
  }
  deblankstring[i] = '\0';
 //有效字符依次入栈
 i = 0;
 while(deblankstring[i] != '\0')
    s.Push(deblankstring[i++]);
 //从栈中弹出字符依次比较
    i = 0;
  while(!s.Empty()){
 c = s.Top();
    s.Pop();
    if(c != deblankstring[i])
      return false;
      i++;
  }
 return true;
}
int main()
{
  char instring[Max_String_Len];
  cout << "input a string:" << endl;
  cin.get(instring, Max_String_Len);
  //cout<<instring;
  if(ispalindrome(instring))
    cout << "\"" << instring << "\"" << " is a palindrome." << endl;
  else
    cout << "\"" << instring << "\"" << " is not a palindrome." << endl;
  system("pause");
  return 0;
}

相关文章

  • 基于Matlab实现BP神经网络交通标志识别

    基于Matlab实现BP神经网络交通标志识别

    道路交通标志用以禁止、警告、指示和限制道路使用者有秩序地使用道路, 保障出行安全.若能自动识别道路交通标志, 则将极大减少道路交通事故的发生。本文将介绍基于Matlab实现BP神经网络交通标志识别,感兴趣的可以学习一下
    2022-01-01
  • EasyC++ 右值引用

    EasyC++ 右值引用

    这篇文章主要介绍了C++ 右值引用,右值引用指的是以引用传递(而非值传递)的方式使用 C++ 右值,下面文章将对此详细介绍,需要的朋友可以参考一下,希望对你有所帮助
    2021-12-12
  • C++多线程实现电子词典

    C++多线程实现电子词典

    这篇文章主要为大家详细介绍了C++多线程实现电子词典,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数

    深入探讨linux下进程的最大线程数、进程最大数、进程打开的文件数

    本篇文章是对linux下进程的最大线程数、进程最大数、进程打开的文件数进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ static函数调用问题小结

    C++ static函数调用问题小结

    静态成员变量是在程序编译时分配空间,而在程序结束时释放空间,这篇文章主要介绍了C++ static函数调用问题小结,需要的朋友可以参考下
    2024-03-03
  • c++ cin 作为while条件(详解)

    c++ cin 作为while条件(详解)

    下面小编就为大家带来一篇c++ cin 作为while条件(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • C++实现连连看消除算法

    C++实现连连看消除算法

    这篇文章主要为大家详细介绍了C++实现连连看消除算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C++编程之CString、string与、char数组的转换

    C++编程之CString、string与、char数组的转换

    这篇文章主要介绍了C++编程之CString、string与、char数组的转换的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下
    2017-10-10
  • C语言求解最长公共子字符串问题及相关的算法分析

    C语言求解最长公共子字符串问题及相关的算法分析

    最长公共子字符串问题即是求一个字符串在另一个字符串中出现的连续最多字符,这里我们来看一下面试中经常出现的C语言求解最长公共子字符串问题及相关的算法分析
    2016-06-06
  • c语言链表基本操作(带有创建链表 删除 打印 插入)

    c语言链表基本操作(带有创建链表 删除 打印 插入)

    这篇文章主要介绍了c语言链表基本操作,大家参考使用吧
    2013-12-12

最新评论