编写一个判断字符串是不是回文串的C程序
时间: 2024-01-17 07:05:31 浏览: 91
#include<stdio.h>
#include<string.h>
int main(){
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
int flag = 1;
for(int i=0; i<len/2; i++){
if(str[i] != str[len-i-1]){
flag = 0;
break;
}
}
if(flag){
printf("是回文串\n");
}else{
printf("不是回文串\n");
}
return 0;
}
相关问题
C语言编写程序判断字符串是否为回文
在C语言中,判断一个字符串是否为回文,就是检查这个字符串从前往后读和从后往前读是否一样。下面是一个简单的C程序示例,它使用了指针来完成这个任务:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
// 遍历直到start和end相遇或交叉
while (start < end) {
if (str[start] != str[end]) {
return 0; // 如果字符不同,则不是回文
}
start++;
end--;
}
return 1; // 如果遍历结束都没有发现字符不同,那么它是回文
}
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 清除fgets带来的换行符
if (isPalindrome(input)) {
printf("%s 是回文\n", input);
} else {
printf("%s 不是回文\n", input);
}
return 0;
}
```
在这个程序中,`isPalindrome`函数接收一个字符串作为输入,通过比较首尾字符并逐步向中间移动,如果发现任何一对字符不相等就立即返回0,表示不是回文;否则当所有字符都比较完毕仍相等,就返回1,表示是回文。
C语言用fgets函数编写程序判断字符串是否为回文
在C语言中,`fgets()` 函数通常用于从文件中读取一行文本到缓冲区,但是我们可以利用它来检查一个字符串是否为回文。回文是指正向读和反向读都一样的字符串,如 "level" 或 "madam"。
下面是一个简单的示例程序,使用 `fgets()` 和一些基本的字符处理功能来检查输入的字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
// 检查字符串是否为回文
int isPalindrome(char str[]) {
int len = strlen(str) - 1; // 获取字符串长度并减一(因为数组索引从0开始)
for (int i = 0; i <= len / 2; i++) { // 遍历一半的字符
if (str[i] != str[len - i]) { // 如果对应位置的字符不相等
return 0; // 不是回文,返回0
}
}
return 1; // 所有字符匹配,是回文,返回1
}
int main() {
char input[100]; // 定义足够大的数组存储字符串
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串
// 移除fgets读取后的换行符
size_t n = strlen(input);
if (input[n - 1] == '\n') {
input[n - 1] = '\0'; // 将最后一个字符设为'\0'
} else {
n--;
}
if (isPalindrome(input)) {
printf("%s 是回文\n", input);
} else {
printf("%s 不是回文\n", input);
}
return 0;
}
```
阅读全文