判断一个字符串是否为回文数字符串

#include<stdio.h>
#define STRLEN 100

int Is_palindromic_str(char *str)
{
	int left = 0;//字符串数组的第一个字母的下标
	int i = 0;
	while(str[i] != '\0')
	{
		i++;
	}
	int right = i - 1;//字符串数组最后一个字母(非‘\0’)的下标
	while(left <= right)
	{
		if(str[left] == str[right])//判断左右字符是否一致,一致的话判断下一个
		{
			left++;
			right--;
		}
		else
			return -1;//不一致,表明不是回文数字符串
	}
	return 1;
}

int main()
{
	char str[STRLEN];
	int i = 1; //循环控制的条件
	while(i)
	{
		printf("Please input the str you want to judge:\n");
		scanf("%s",str);

		if(Is_palindromic_str(str) != -1)
		{
			printf("It's a palidromic string!\n");
		}
		else
		{
			printf("It's not a palidromic string!\n");
		}
		printf("continue:1,break:0\n");
		scanf("%d",&i);
	}
	return 0;
}

时间: 2024-09-29 10:03:47

判断一个字符串是否为回文数字符串的相关文章

判断一个数字是否为回文数

Determine whether an integer is a palindrome. Do this without extra space.(source) 判断一个数字是否为回文数,并且不使用额外的存储空间. "回文"是指正读反读都能读通的句子,那么回文数,就很容易理解,就是指一个数正反读的值是相同的.还有一个要求是不要使用额外的存储空间. Hints: 要将一个数的最高位与最低位比较,取出一个数的最低位容易(x%10),但要得到高位却很难. Solution 1: 首先得知

判断一个整数是否是回文数C++实现 leetcode系列(九)

判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 . 从右向左读, 为 121- .因此它不是一个回文数. 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 .因此它不是一个回文数. 这道验证回文数字的题如果将数字转为字符串,就变成了验证回文字符串的题,没啥难度了,我们就直接来做follow up吧

判断一个整数是否为回文数 Check if a number is palindrome

一种方法是先翻转当前数,然后把它和原数比较(略) 另一种是递归方法,借用一个复制数,对原数递归,使之翻转,然后配合复制数比较 package recursion; public class Check_if_a_number_is_palindrome { public static void main(String[] args) { int num = 121321; System.out.println(check(num)); num = 12321; System.out.printl

leetcode_判断一个整数是否是回文数C++

小弟不才,有错误之处,麻烦指出.谢谢. 判断一个数是否是回文数. 方法一:主要思路是把原本的数字(x)拆分开,组成一个数字(y),然后判断x==y. class Solution { public: bool isPalindrome(int x) { int i=0; int j=0; int k=0; if (x < 0) {//判断负数 return false; } if(x>=0&&x<10){//2,3,5,等都是回文数 return true; } else

c语言练习3——判断一个5位数是否回文数

#include<stdio.h> #include<stdlib.h> /*题目:判断一个五位数是否为回民数.*/ int main(){ int a,a1,a2,a3,a4,a5; while(1){ printf("请输入一个5位数:"); scanf("%d",&a); a1=a%10; a2=a/10%10; a3=a/100%10; a4=a/1000%10; a5=a/10000; if(a1==a5&&

编写一个函数判断一个整数是否为回文数。如果一个属从正的方向读和从反的方向读的结果相同,则该数就是回文数。

bool palindrome(int b){ int k = 0; char a[1000]; do { int c; c = b % 10; char d; for (int i = 0; i <= 9; i++) { if (c == i) { d = '0' + i; break; } } a[k++] = d; b = b / 10; } while (b != 0); // k = 字符长度 int j = 0; if (k == 1) { return true; } else {

java语言判断一个数字是否为回文数字

判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 . 从右向左读, 为 121- .因此它不是一个回文数. 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 .因此它不是一个回文数. 进阶: 你能不将整数转为字符串来解决这个问题吗? 解法一:使用字符串反转,比较反转前后的字符串是否相等 class

C实例--判断一个字符串是否是回文数

回文是指顺读和反读内容均相同的字符串,例如"121","ABBA","X"等.本实例将编写函数判断字符串是否是回文. 引入两个指针变量,开始时,两个指针分别指向字符串的首末字符,当两个指针所指字符相等时,两个指针分别向后和向前移动一个字符位置,并继续比较,直到两个指针相遇,说明该字符串是回文,如果比较过程中发现两个指针指向的字符不相等,则判断该字符串不是回文. 下面是代码的实现部分: #include <stdio.h> #inclu

判断一个数是否为回文数,字符串是否为回文字符串

使用C语言编写程序 判断一个数是否为回文数.(ps:回文数也是一个数字,数字的特点是正反序是同一个数字,如12321,3443就是回文数). 要判断该数字是否为回文数,可以通过模除得到该数的反序数字,进行比较是否相等来判读. 具体实现如下: void Practice() { int num, value, flag, var; value = 0; flag = 1; scanf("%d", &num); var = num; while(num) {//value存储num