用c语言:编写函数,判断一个字符串是否是回文。
时间: 2023-06-22 08:24:49 浏览: 65
可以使用双指针法,一个指针指向字符串头部,一个指针指向字符串尾部,逐一比较字符是否相同。
以下是实现代码:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
int left = 0, right = len - 1;
while (left < right) {
if (str[left] != str[right]) {
return 0;
}
left++;
right--;
}
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 表示不是回文字符串。
相关问题
使用C语言编写函数,判断一个字符串是否是回文,调用该函数后输出结果。
好的,这是一个简单的C语言程序,实现了判断一个字符串是否是回文的功能:
```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 str[100];
printf("请输入字符串:");
scanf("%s", str);
if (is_palindrome(str)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
在该程序中,我们定义了一个名为is_palindrome()的函数,它的形参是一个指向字符数组的指针变量。在该函数中,我们首先使用strlen()函数计算出字符串的长度。接着使用两个指针i和j,分别指向字符串的开头和结尾,从两端开始遍历字符串,每次比较两个字符是否相等,如果不相等就返回0,表示不是回文字符串。如果遍历完整个字符串后都没有返回0,则说明是回文字符串,返回1。
在main()函数中,我们首先定义了一个字符数组str,然后使用scanf()函数从标准输入中读取这个字符串。接着调用is_palindrome()函数判断字符串是否是回文,最后输出结果。
需要注意的是,在输入字符串时,我们使用了%s格式控制符,这个控制符表示读取一个字符串,遇到空格或者换行符就停止读取。
用c语言写一个函数,判断一个字符串是否为回文字符串
好的,可以使用以下 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-1-i]) {
return 0; // 不是回文字符串,返回0
}
}
return 1; // 是回文字符串,返回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()` 函数接收一个字符串 `str`,返回一个整数值,1 表示 `str` 是回文字符串,0 表示 `str` 不是回文字符串。函数通过遍历字符串的前一半字符和后一半字符进行比较,如果发现不同则直接返回 0,否则遍历结束后返回 1。
在 `main()` 函数中,首先输入一个字符串,然后调用 `isPalindrome()` 函数判断它是否为回文字符串,并输出相应的结果。