#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文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)