【码图c】#99 回文(判断字符串是否是回文)

 

回文

通过课程进入题 号:99回文语言要求:C++
回文测试:输入一30个字符以内的字符串,判断是否为回文;如果是,则打印"true";否则打印"false"。像"aba"这样的从左往右读与从右往左读一致就是回文。

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

char a[100],s[100];
int len;

void hui(int y);


int main(){
	gets(a);
	len=strlen(a);
	int k=len/2-1; //一半
	hui(k);
	return 0;
}


void hui(int y){
	int u;
	int top=0;
	for(u=0;u<=y;u++){
		s[++top]=a[u];
	}
	if(len%2==0){
		y=y+1;
	}else{
		y=y+2;
	}
	for(u=y;u<len;u++){
		if(a[u]!=s[top])
			break;
		top--;
	}
	if(top==0)
	{printf("true");
	}else{
		printf("false");
	}
	
}

这段代码是一个判断字符串是否为回文的程序,即判断一个字符串从左往右读和从右往左读是否一样。它的具体实现过程如下:

1. 第 1 行和第 2 行是 C 语言中的预处理器指令,用于导入 `stdio.h` 和 `string.h` 这两个头文件,这些头文件包含了 I/O 和字符串操作相关的函数等信息。

2. 第 4 行定义了一个字符数组 `a`,长度为 100,用于存储输入的字符串。 

3. 第 5 行定义了另一个字符数组 `s`,长度为 100,用于存储处理后的字符串。 

4. 第 6 行定义了一个 `len` 变量,用于存储输入字符串的长度。 

5. `hui()` 函数的主要功能是判断输入的字符串是否为回文,其输入参数为一个整数 `y`,表示选取前 y 个作为回文比较的内容。 

6. 在 `hui()` 函数中,首先定义了一个整数变量 `top`,用于记录当前栈顶位置,初始化为 0。

7. 接着,在循环中,将一个字符 `a[u]` 压入栈 `s` 中,并移动栈顶指针(`++top`)。

8. 根据回文字符串中字符数的奇偶性,决定需要进行比较的字符范围,并在循环中依次比较字符 `a[u]` 是否与栈顶字符 `s[top]` 相同。如果相同,则将栈顶指针向下移动一位 ( `top--`)。

9. 最后,判断栈是否为空。如果为空,则表示字符串是回文;否则,表示该字符串不是回文。 

10. 在 `main()` 函数中,首先调用了 `gets()` 函数来获取输入的字符串,并使用 `strlen()` 函数计算字符串长度。然后,计算需要比较的字符区间的右端点 `k`,并调用 `hui()` 函数进行比较。最后返回 0,表示程序执行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值