编写程序,判断某一字符串是不是“回文数”。(“回文数”是从左至右和从右至左读起来都一样的字符串)。用C语言
时间: 2023-11-27 10:50:23 浏览: 72
以下是用 C 语言实现判断回文数的程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, len, flag = 0;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len/2; i++) {
if (str[i] != str[len-i-1]) {
flag = 1;
break;
}
}
if (flag == 1) {
printf("%s 不是回文数\n", str);
} else {
printf("%s 是回文数\n", str);
}
return 0;
}
```
其中,我们使用了 `strlen()` 函数来获取输入字符串的长度,使用循环遍历字符串的前半部分,依次和字符串的后半部分比较,如果存在不同的字符,则说明不是回文数。最后根据标志变量 `flag` 判断输出结果。
如果输入的字符串是回文数,则输出:
```
请输入一个字符串:level
level 是回文数
```
如果输入的字符串不是回文数,则输出:
```
请输入一个字符串:hello
hello 不是回文数
```
相关问题
21、 编写一个判断字符串是否是回文数。回文就是一个字符串从左到右读和从右到左读是完全一样的。例如,level,12321,ABA是回文。
下面是一个简单的 Python 代码示例,用于判断一个字符串是否是回文数:
```
def isPalindrome(s):
# 将字符串转化为小写并去除空格
s = s.lower().replace(" ", "")
# 判断字符串是否等于其反转后的字符串
return s == s[::-1]
# 测试
print(isPalindrome("level")) # True
print(isPalindrome("12321")) # True
print(isPalindrome("ABA")) # True
print(isPalindrome("Hello, world!")) # False
```
程序中定义了一个名为 `isPalindrome` 的函数,该函数接受一个字符串作为参数,首先将字符串转化为小写并去除空格,然后判断字符串是否等于其反转后的字符串。如果是,说明该字符串是回文数,返回 True,否则返回 False。
运行代码后,程序会输出:
```
True
True
True
False
```
说明 "level"、"12321"、"ABA" 都是回文数,而 "Hello, world!" 不是回文数。
用·java编写一个程序,判断一个字符串是否为回文。回文意味着字符串从左向右读和从右向左读是一样的,例如“racecar”,“level”。
好的,下面是用Java编写的判断回文字符串的程序:
```java
import java.util.Scanner;
public class Palindrome {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
if (isPalindrome(str)) {
System.out.println(str + " 是回文字符串");
} else {
System.out.println(str + " 不是回文字符串");
}
}
public static boolean isPalindrome(String str) {
int len = str.length();
for (int i = 0; i < len / 2; i++) {
if (str.charAt(i) != str.charAt(len - 1 - i)) {
return false;
}
}
return true;
}
}
```
程序中,通过Scanner类从控制台读取一个字符串,然后调用isPalindrome()方法判断该字符串是否为回文字符串。isPalindrome()方法使用双指针法,从字符串的两端开始向中间遍历,如果发现两端的字符不同,则说明该字符串不是回文字符串。如果遍历完成后仍然没有发现不同的字符,则说明该字符串是回文字符串。