做这个题时遇到个bug,即main()中的第一句,我定义了指针str_input用来装输入的字符串,但是后面赋值操作却用了get(),如果要用get()读入字符串的话就应该将str_input定义为数组,编译时没有报错,但运行时出错。我调试的时候一直以为bug在IsPlalindrome()里面,耽误了很久的时间。基础知识不够牢固啊!

#include <stdio.h>
#include <string.h>const int TRUE = 1;
const int FALSE = 0;
const int STR_MAX_SIZE = 100;
typedef int STATUS;
typedef char ElementType;
typedef struct
{int stack_size;ElementType *top;ElementType *base;
}STACK;STATUS IsPlalindrome(char* s);
int main()
{
//  char *str_input;  //之前这么定义的,导致程序在gets(str_input)处出错,后改成下一句 char str_input[STR_MAX_SIZE];printf("\n请输入待检测的字符串:");gets(str_input);if(IsPlalindrome(str_input)){printf("\n是回文字符串!");}else{printf("\n不是回文字符串!");}return 0;
}STATUS IsPlalindrome(char* s)
{int len;char *p;STACK stack;len = strlen(s) / 2; p = s;stack.base = new char [len];stack.top = stack.base;stack.stack_size = len;for(int i = 0; i < stack.stack_size; i++){*(stack.top) = *p;stack.top++;p++;}if(stack.stack_size % 2 == 1)//当字符串为奇数个时,最中间的字符无需比较,直接跳过 {p++;}while(stack.top != stack.base){if(*(stack.top - 1) != *p){delete [] stack.base;return FALSE;  }else{stack.top--;p++;}}if(stack.top == stack.base){delete [] stack.base;return TRUE;}
}

P85.2.(2)回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半的字符入栈)(C语言描述)相关推荐

  1. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    栈与队列习题:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向 ...

  2. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)

    文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列:如"abba"和"abdba"均是回文,但"good" ...

  3. 回文是指正读反读均相同的字符序列,如“abba“和“abdba“均是回文,但“good“不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    题目要求:回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.试写一个算法判定给定的字符向量是 ...

  4. 回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。

    步骤:1.通过InitStack()函数来初始化栈 2.通过Push()函数来压栈 3.通过Pop()函数来弹栈 4.通过StackEmpty()函数来进行栈的判空 5.通过Panduan()函数来进 ...

  5. 类C语言--栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)

    此代码可以正常运行,下附有运行界面,是是实实在在的类C语言 将字符串前一半入栈,然后,栈中元素和字符串后一半进行比较.即将第一个出栈元素和后一半串中第一个字符比较,若相等,则再出栈一个元素与后一个字符 ...

  6. 1.回文是指正读和反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈。)2.假设以带头结点的循环链

    typedef struct StackNode {char date;struct StackNode* next; }*LinkStack,StackNode; //初始化链栈 void Init ...

  7. 回文序列是指正读反读均相同的字符序列,如“abba”和“abdba”均是 回文,但“good”不是回文。试写一个算法判定给定的字符串是否为回文序列。

    回文,就是将头尾互换,地址位置不需改变. #include <stdio.h> #include <string.h>const int TRUE = 1; const int ...

  8. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文但“good”不是回文,试写一个算法判断给定字符是否为回文。

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include<iostream> ...

  9. 回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。编写一个程序,使用栈判定给定的字符序列是否为回文。

    内容: 回文是指正读反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文.编写一个程序,使用栈判定给定的字符 ...

最新文章

  1. Python学习心得第一周-03练习2
  2. 洛谷——P1059 明明的随机数
  3. 如何设计数据库表实现完整的RBAC(基于角色权限控制)
  4. C++实现贪吃蛇(多线程,窗口设置,链表,音乐播放)
  5. 设计素材模板|艺术感中国风海报
  6. SVN—怎么删除 SVN 上已有的URl
  7. xvid开放源码xvidcore-1.1.3.zip在VC下成功编译的方法
  8. ext2文件系统源代码之inode.c
  9. DBC文件解析及CAN通信矩阵
  10. html中pc端与移动端区别,pc端是什么意思?pc端和移动端有什么区别
  11. 请领导批阅文件怎么说_汇报措辞:你懂得怎样向领导汇报吗(审阅、审批、批阅、批示、查阅)?...
  12. 知来者之可追_#AboutLastWeek:老朋友,新来者以及介于两者之间的人
  13. sql中如何按拼音笔画排序
  14. 大地测量常用的四种坐标系
  15. 2019的百度网盘下载速度太慢老是限速怎么解决?
  16. Sharepoint visio Web Access
  17. 复习中国近现代史纲要--“政治编年史”
  18. 【Linux正则表达式之grepegrep】
  19. matlab bar 填充花纹,转:使用matlab绘画柱状图,且使用不同的图案填充
  20. 路由器如何恢复出厂设置

热门文章

  1. 队列练习之Example005-Q 是一个队列,S 是一个空栈,实现将队列中的元素逆置的算法
  2. Microsoft.Office.Interop.Word 创建word
  3. 金融硕士自学python_国际金融硕士跨专业学Python从老男孩教育开始
  4. RGB-D论文复习速读
  5. 网上如何赚钱?教你利用知识变现来赚钱!
  6. 【接口篇 / Wan】(5.2) ❀ 04. 多条宽带冗余 ❀ FortiGate 防火墙
  7. 计算机网络技术的发展趋势,计算机网络技术发展趋势(原稿)
  8. MATLAB 中contour的应用
  9. mysql错误+126_MySQL,错误126:表的密钥文件不正确
  10. POWER BI里如何累计求和(一)