c语言2.编写程序,从键盘读入一个字符串,判断它是否为回文。 (所谓回文是指顺读和倒读都一样的字符串,例如level、Madam和Anna都是回文字符串,忽略大小写)。 使用指针实现
时间: 2023-06-18 15:06:16 浏览: 64
下面是使用指针实现判断回文字符串的C语言程序:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main()
{
char str[100];
char *p, *q;
int len, i;
printf("请输入一个字符串: ");
scanf("%s", str);
len = strlen(str);
p = str;
q = str + len - 1;
for (i = 0; i < len / 2; i++)
{
if (tolower(*p) != tolower(*q))
{
printf("%s 不是回文字符串\n", str);
return 0;
}
p++;
q--;
}
printf("%s 是回文字符串\n", str);
return 0;
}
```
程序首先读入一个字符串,然后使用指针p和q指向字符串的首尾位置,比较它们所指向的字符是否相同。如果不同,则说明字符串不是回文字符串,程序输出相应的提示信息。如果比较完了整个字符串,都没有发现不同的字符,则说明字符串是回文字符串,程序输出相应的提示信息。在比较字符时,为了忽略大小写,我们使用了tolower函数将字符转换为小写字母再进行比较。
相关问题
用c语言编写程序判断输入字符串是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串
可以使用两个指针分别指向字符串的首尾字符,然后依次向中间靠拢比较字符是否相同。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char* str) {
int len = strlen(str);
char* p = str;
char* q = str + len - 1;
while (p < q) {
if (*p != *q) {
return 0;
}
p++;
q--;
}
return 1;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
这段代码首先使用 `strlen()` 函数获取字符串长度,然后使用两个指针 `p` 和 `q` 分别指向字符串的首尾字符。在循环中,如果两个字符不相等,则说明不是回文字符串,直接返回 0;否则,将指针向中间靠拢继续比较,直到 `p` 大于等于 `q`,此时说明是回文字符串,返回 1。最后在 `main()` 函数中读入字符串,调用 `isPalindrome()` 函数判断是否为回文字符串,根据返回值输出相应的结果。
使用c语言编写判断回文:判断输入的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。编写子函数进行判断。
下面是使用 C 语言编写的判断回文的程序:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int length = strlen(str);
for(int i = 0; i < length/2; i++) {
if(str[i] != str[length-i-1]) {
return 0;
}
}
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` 的子函数,用于判断输入的字符串是否为回文字符串。该函数的实现方式是,从字符串的首尾开始遍历,对比每个字符是否相等,如果存在不相等的情况,则返回0表示不是回文字符串,否则返回1表示是回文字符串。
在主函数中,先读入一个字符串,然后调用 `isPalindrome` 函数判断该字符串是否为回文字符串,并输出相应的结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)