C语言:回文是从前向后和从后向前读起来都一样的,请编写一个函数,判断一个字符串是否为回文
时间: 2024-02-12 10:04:46 浏览: 27
好的,以下是一个判断字符串是否为回文的 C 语言函数:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0;
}
}
return 1;
}
int main() {
char str[] = "abcba";
if (isPalindrome(str)) {
printf("%s is a palindrome.\n", str);
} else {
printf("%s is not a palindrome.\n", str);
}
return 0;
}
```
在该函数中,我们首先计算字符串的长度,然后通过循环遍历字符串的前一半,判断其是否与对应的后一半相同。如果有任何一个字符不相同,则该字符串不是回文。如果所有字符都相同,则该字符串是回文。
相关问题
回文是从前向后和从后向前读起来都一样的,请编写一个函数,判断一个字符串是否为回文C语言完整代码
当然可以!以下是 C 语言代码实现:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_palindrome(char *s) {
int len = strlen(s);
char str[len + 1];
int i, j, k = 0;
// 去除空格并转换为小写字母
for (i = 0; i < len; i++) {
if (isalpha(s[i])) {
str[k++] = tolower(s[i]);
}
}
str[k] = '\0';
// 判断是否为回文
for (i = 0, j = k - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
return 0;
}
}
return 1;
}
int main() {
char string1[] = "A man a plan a canal Panama";
char string2[] = "Hello, world!";
printf("%d\n", is_palindrome(string1)); // 1
printf("%d\n", is_palindrome(string2)); // 0
return 0;
}
```
这个函数首先会将字符串去除空格并转换为小写字母,然后利用双指针法来判断字符串是否为回文。如果字符串与将其反转后的结果相同,则说明它是回文,返回 1,否则返回 0。
你可以调用这个函数来判断一个字符串是否为回文,例如:
```c
char string1[] = "A man a plan a canal Panama";
char string2[] = "Hello, world!";
printf("%d\n", is_palindrome(string1)); // 1
printf("%d\n", is_palindrome(string2)); // 0
```
希望这个函数能够满足你的需求!
用c语言数组数组和循环回文是从前向后和从后向前读起来都一样的,请编写一个函数,判断一个字符串是否为回文 提示:len=strlen(str); /*求字符串的长度*/
好的,我可以为您编写一个判断字符串是否为回文的函数,代码如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return 0; // 不是回文
}
}
return 1; // 是回文
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s 是回文。\n", str);
} else {
printf("%s 不是回文。\n", str);
}
return 0;
}
```
函数 `isPalindrome` 的参数为一个字符数组,返回值为一个整数,如果是回文则返回 1,否则返回 0。函数中先求出字符串的长度,然后使用循环依次比较第一个字符和最后一个字符、第二个字符和倒数第二个字符,以此类推,如果有不相等的字符,则不是回文,直接返回 0。如果循环结束后都没有返回,则说明是回文,返回 1。
在 `main` 函数中,先输入一个字符串,然后调用 `isPalindrome` 函数进行判断,并输出结果。
希望可以帮到您!