利用指针判断输入的字符串是否为回文
时间: 2024-06-14 20:04:49 浏览: 75
利用指针判断输入的字符串是否为回文的方法如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
char *p1 = str; // 指向字符串开头的指针
char *p2 = str + len - 1; // 指向字符串末尾的指针
while (p1 < p2) {
if (*p1 != *p2) {
return 0; // 不是回文字符串
}
p1++;
p2--;
}
return 1; // 是回文字符串
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("这是回文字符串\n");
} else {
printf("这不是回文字符串\n");
}
return 0;
}
```
相关问题
c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文
在C语言中,我们可以利用指针和循环结构来编写一个函数来判断一个字符串是否是回文。回文是指正读反读都一样的字符串,比如"level"、"racecar"等。
下面是一个简单的C函数示例,它接受两个指向字符数组的指针作为参数,通过比较首尾字符是否相等来判断字符串是否为回文:
```c
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
bool is_palindrome(char *str1, char *str2) {
// 如果两个指针交叉点到达结束位置,则说明是回文
if (str1 >= str2)
return true;
// 比较两个指针所指的字符是否相等
while (*str1 == *str2) {
str1++;
str2--;
}
// 如果有不相等的字符,说明不是回文
return false;
}
int main() {
char input[] = "madam";
if (is_palindrome(input, input + strlen(input) - 1)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
```
在这个例子中,`str1` 和 `str2` 分别指向字符串的开始和结束,然后向中心移动,如果发现有不匹配的字符则返回 `false`。如果没有找到不匹配的字符,说明整个字符串是回文,返回 `true`。
c语言编写函数判断一个字符串是否为回文运用指针函数并判断输入字符串是否为回文不使用bool
在C语言中,可以使用指针来判断一个字符串是否为回文。回文是指正读反读都一样的字符串,例如"madam"、"racecar"等。这里我们不使用布尔类型,而是通过比较字符来实现。下面是一个简单的函数示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void is_palindrome(char *str);
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 移除换行符
if (is_palindrome(input)) {
printf("%s is a palindrome.\n", input);
} else {
printf("%s is not a palindrome.\n", input);
}
return 0;
}
// 指针函数判断回文
void is_palindrome(char *str) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) { // 当两个指针指向的字符相等,继续向中间移动
if (str[start] != str[end]) {
return; // 如果不相等,直接返回,不是回文
}
start++;
end--;
}
printf("%s is a palindrome (using pointers)\n", str);
}
```
在这个例子中,`is_palindrome`函数接受一个字符串指针作为参数,通过两个指针分别从字符串的开始和结束位置向中间移动,并检查对应位置的字符是否相等。如果任何时候发现不相等,则立即返回非回文;当所有字符都匹配时,说明它是回文。
阅读全文