回文字符串c语言指针
时间: 2023-11-24 09:53:22 浏览: 99
以下是一个判断回文字符串的C语言指针示例:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char *p1, *p2;
printf("请输入一个字符串:");
scanf("%s", str);
p1 = str;
p2 = str + strlen(str) - 1;
while (p2 > p1)
{
if (*p1 != *p2)
{
printf("%s 不是回文字符串", str);
return 0;
}
p1++;
p2--;
}
printf("%s 是回文字符串", str);
return 0;
}
```
相关问题
回文字符串c语言用函数指针
以下是使用函数指针判断回文字符串的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str, int (*cmp)(const char *, const char *));
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str, strcmp)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
int isPalindrome(char *str, int (*cmp)(const char *, const char *)) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (cmp(&str[i], &str[len - i - 1]) != 0) {
return 0;
}
}
return 1;
}
```
该程序中,isPalindrome函数使用了函数指针cmp,该指针指向了strcmp函数,用于比较两个字符是否相等。在主函数中,先输入一个字符串,然后调用isPalindrome函数进行判断,如果是回文字符串则输出“是回文字符串”,否则输出“不是回文字符串”。
判断回文字符串c语言
判断一个字符串是否是回文字符串,即正读和反读都一样,可以使用C语言中的指针和循环结构来实现。这里是一个简单的算法:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[], int start, int end);
int main() {
char str[100];
printf("请输入一个字符串: ");
fgets(str, sizeof(str), stdin); // 读取用户输入
str[strcspn(str, "\n")] = '\0'; // 去除换行符
if (isPalindrome(str, 0, strlen(str) - 1)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
// 判断回文函数
int isPalindrome(char str[], int start, int end) {
while (start < end) { // 当前字符和对应反向字符比较
if (str[start] != str[end]) {
return 0; // 如果不相等,则不是回文
}
start++; // 移动开始位置
end--; // 移动结束位置
}
return 1; // 如果全部字符匹配,返回1表示是回文
}
阅读全文