判断是不是回文程序

判断是不是回文程序,第1张

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

char *chan(int count)

int main(int argc, char* argv[])

{

char *str

int i,n

str=chan(0)

n=strlen(str)

for (i = 0i<(n-1)/2i++) {

if (str[i]!=str[n-1-i]) {

n=0

break

}

}

if (n) {

printf("TRUE\n")

}

else printf("FALSE\n")

free(str)

system("pause")

return 0

}

char *chan(int count)

{

char a

static char * p

if ((a=getchar())!='\n')

{

count++

chan(count)

}

else {

p=malloc(sizeof(char)*(count+1))

*(p+count)=0

return p

}

*(p+count-1)=a

return p

}

//---------------------------------------------------------------------------

如果是回文,则输出"TRUE",否则输出"FALSE"

其中的chan()函数用于确定字符串长度,并且动态创建指定长度的字符数组,再将字符串读入,之后返回字符串。这样可以节省不必要的空间。

判断回文字符串的办法就是成对比较,就是把字符串的第一个字符和倒数第一个字符比较,把第二个字符和倒数第二个比较……,以此类推。所以要写一个判断字符串是否回文的函数要先算出字符串S的字符数n,然后把S[0]和S[n-1-0]比较,S[1]和S[n-1-1]比较,S[2]和S[n-1-2]比较,……,直到把S[n/2]和S[n-1-n/2]比较,只要发现一个不同就可以判断不是回文,否则就是回文。具体判断步骤如下。

1、进入VC++,新建C++文件。

2、编写程序:

#include <iostream>             //控制台 *** 作头文件#include <string.h>             //字符串 *** 作头文件  bool Hw(char s[])               //检测是否回文的函数{int i,n=strlen(s)             //循环变量和字符串长度 if(n<=1) return false         //空串或只有一个字符不算回文串 for(i=0i<n/2i++)             //用循环逐个检测     if(s[i]!=s[n-1-i])         //如果对称位置的字符不一样        return false           //结束函数并返回假 return true}                  //检测完还没发现不同就返回真  int main()                              //主函数{int i                                 //循环变量 char S[255]                           //用于存放字符串的数组   for()                                //弄一个无穷循环     {printf("请输入字符串(END结束):")  //显示提示信息     scanf("%s",S)                     //从键盘输入字符串到S中      if(strcmp(S,"END")==0) break      //如果输入END退出循环     if(Hw(S))                          //用自定义函数判断是否回文        printf("这是回文字符串\n\n")   //显示判断结果     else printf("这不是回文字符串\n\n")} printf("\n")                          //输完所有数再空一行 system("PAUSE")                       //暂停屏幕以便查看显示结果 return 0}                             //结束程序

3、检查没有错误进行编辑连接运行,运行结果如下。

#include&ltstdio.h&gt

#include&ltstdlib.h&gt

int main()

{

char a[100]

int i=0,j=0

printf("请输入字符串:\n")

gets(a)

while(a<i>!='\0')

i++

i--

for(j&lt=ii--,j++)

{

if(a<i>!=a[j])

{

break

}

}

if(j&lt=i)

{

printf("不是回文串\n",a)

}

else

{

printf("是回文串\n",a)

}

system("pause")

return 0

}

扩展资料:

用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7760169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存