c语言实现一个函数,判断字符串是否是回文。如果是则返回1,否则返回0。
时间: 2023-06-19 14:08:21 浏览: 173
下面是一个简单的C语言函数,用于判断给定的字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int len = strlen(str);
int i, j;
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
return 0;
}
}
return 1;
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s is a palindrome\n", str);
} else {
printf("%s is not a palindrome\n", str);
}
return 0;
}
```
在这个函数中,我们使用了一个for循环来遍历字符串,同时比较第i个字符和第j个字符是否相等。如果存在不相等的情况,则该字符串不是回文,返回0。否则,该字符串是回文,返回1。
相关问题
用C语言实现一个函数,判断字符串是否是回文。如果是则返回1,否则返回0。
下面是用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 str1[] = "abcba";
char str2[] = "hello";
if(isPalindrome(str1)) {
printf("%s is a palindrome.\n", str1);
} else {
printf("%s is not a palindrome.\n", str1);
}
if(isPalindrome(str2)) {
printf("%s is a palindrome.\n", str2);
} else {
printf("%s is not a palindrome.\n", str2);
}
return 0;
}
```
输出结果为:
```
abcba is a palindrome.
hello is not a palindrome.
```
该函数先计算字符串的长度,然后从字符串的开头和结尾开始遍历,如果发现有不同的字符,则字符串不是回文,返回0;如果遍历到中间位置时所有字符都相同,则字符串是回文,返回1。
c语言数组实现一个函数,判断字符串是否是回文。如果是则返回1,否则返回0。
可以使用双指针法,从字符串的两端开始遍历,判断是否相等。
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(char str[]) {
int len = strlen(str);
int i, j;
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j])
return 0;
}
return 1;
}
int main() {
char str1[] = "hello";
char str2[] = "racecar";
printf("%d\n", is_palindrome(str1)); // 0
printf("%d\n", is_palindrome(str2)); // 1
return 0;
}
```
在 `is_palindrome` 函数中,先计算字符串的长度,然后使用双指针分别从前往后和从后往前遍历字符串,如果发现不相等的字符,就返回0,否则返回1。在主函数中,我们可以测试两个字符串是否是回文。
阅读全文