C语言输入一个字符串,判断其是否为回文。如输入:abcba或者2k66k2等形式的字符输出“是回文”,如输入: 12323或者abcbd等形式的字符输出“不是回文"
时间: 2024-05-11 11:16:53 浏览: 62
您好,我是ChitGPT,一个人工智能聊天机器人。若要判断一个字符串是否为回文,可以通过以下代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, j, len, flag = 1;
printf("请输入一个字符串: ");
scanf("%s", str);
len = strlen(str);
for(i = 0, j = len - 1; i < len / 2; i++, j--)
{
if(str[i] != str[j])
{
flag = 0;
break;
}
}
if(flag == 1)
printf("是回文\n");
else
printf("不是回文\n");
return 0;
}
```
以上代码中,先读入一个字符串,然后通过 for 循环从字符串的两端同时开始向中间遍历,若发现两端的字符不相等,则说明该字符串不是回文。若遍历完成后没有发现不相等的字符,则说明该字符串是回文。
希望这个回答能对您有所帮助。如果您还有其他问题,请继续提问。
相关问题
Java编程判断输入的字符是否是回文串,例如:abcba。
好的,这是 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 s = scanner.nextLine();
int length = s.length();
boolean isPalindrome = true;
for (int i = 0; i < length / 2; i++) {
if (s.charAt(i) != s.charAt(length - 1 - i)) {
isPalindrome = false;
break;
}
}
if (isPalindrome) {
System.out.println("是回文串");
} else {
System.out.println("不是回文串");
}
}
}
```
运行示例:
```
请输入一个字符串:abcba
是回文串
```
```
请输入一个字符串:hello
不是回文串
```
C语言输入一个字符串,判断是否为回文
在C语言中,判断一个字符串是否为回文(即正读反读都一样的词或句子)可以采用双指针法。通常做法是设置两个指针,一个指向字符串的起始位置(i),另一个指向结束位置(j)。然后依次比较两个指针所指向的字符,如果相等则向中间移动,如果不等,则说明不是回文。
下面是一个简单的C语言函数示例:
```c
#include <stdio.h>
#include <string.h>
// 判断字符串是否为回文
int isPalindrome(char str[]) {
int i = 0;
int j = strlen(str) - 1; // 字符串长度减一,因为最后一个字符不用考虑
while (i < j) { // 当两个指针未相遇
if (str[i] != str[j]) { // 如果对应字符不相等
return 0; // 不是回文,返回0
}
i++; // 左指针右移一位
j--; // 右指针左移一位
}
return 1; // 全部字符都匹配,是回文,返回1
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin); // 从标准输入获取字符串
str[strcspn(str, "\n")] = '\0'; // 去除换行符
if (isPalindrome(str)) {
printf("%s 是回文\n", str);
} else {
printf("%s 不是回文\n", str);
}
return 0;
}
阅读全文