回文字符串c语言指针
时间: 2023-11-24 08:53:22 浏览: 104
以下是一个判断回文字符串的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语言代码:
1.使用数组实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for(i=0;i<len;i++)
{
if(str[i]!=str[len-i-1])
{
flag = 1;
break;
}
}
if(flag)
{
printf("%s is not a palindrome\n", str);
}
else
{
printf("%s is a palindrome\n", str);
}
return 0;
}
```
2.使用指针实现:
```c
#include <stdio.h>
#include <string.h>
bool palindrome(char *s)
{
int i = 0, ret;
while(*(s + i) != '\0')
{
i++;
}
i--;
int k = 0;
while(i > k)
{
if(s[i] != s[k])
{
break;
}
i--;
k++;
}
if(i <= k)
{
ret = 1;
}
else
{
ret = 0;
}
return ret;
}
int main()
{
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if(palindrome(str))
{
printf("%s is a palindrome\n", str);
}
else
{
printf("%s is not a palindrome\n", str);
}
return 0;
}
```
阅读全文