C语言做编写程序,判断用户输入的字符串是否为回文串。(提示:回文字符串是具有回文特性的字符串:即该字符串从左向右读和从右向左读一样,如12321)
时间: 2024-03-02 12:51:09 浏览: 83
以下是使用 C 语言编写的程序,判断用户输入的字符串是否为回文串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int length;
int isPalindrome = 1;
printf("请输入字符串:");
scanf("%s", str);
length = strlen(str);
// 判断是否为回文串
for (int i = 0; i < length / 2; i++) {
if (str[i] != str[length - i - 1]) {
isPalindrome = 0;
break;
}
}
if (isPalindrome) {
printf("是回文串\n");
} else {
printf("不是回文串\n");
}
return 0;
}
```
程序首先要求用户输入字符串,然后使用 `strlen` 函数获取字符串的长度。接下来,使用 `for` 循环判断字符串是否为回文串,如果字符串不是回文串,则将 `isPalindrome` 标记为 0。最后,根据 `isPalindrome` 的值输出判断结果。
相关问题
c语言编写程序,判断输入的字符串是否为回文。
在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; // 如果任意一对字符不匹配,返回0(非回文)
}
}
return 1; // 全部匹配,返回1(回文)
}
int main() {
char input[100];
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 防止读取换行符
input[strlen(input) - 1] = '\0'; // 去除fgets末尾的换行符
if (isPalindrome(input)) {
printf("%s 是回文字符串.\n", input);
} else {
printf("%s 不是回文字符串.\n", input);
}
return 0;
}
```
在这个程序中,`isPalindrome`函数接收一个字符串作为参数,通过逐个比较首尾字符直到中间位置,检查它们是否相等。如果找到不匹配的字符,就立即返回0;否则遍历完整个半程后返回1。
用c语言编写程序,键盘输入字符串是否为回文字符串
以下是使用 C 语言编写的程序来判断输入的字符串是否为回文字符串:
```c
#include <stdio.h>
#include <string.h>
int is_palindrome(char string[]) {
int length = strlen(string);
int i, j;
for (i = 0, j = length - 1; i < j; i++, j--) {
if (string[i] != string[j]) {
return 0; // 不是回文字符串
}
}
return 1; // 是回文字符串
}
int main() {
char input_string[100];
printf("请输入一个字符串:");
scanf("%s", input_string);
if (is_palindrome(input_string)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
这个程序通过获取输入的字符串并使用`strlen`函数来获取字符串的长度。然后,使用两个指针`i`和`j`,一个从字符串的起始位置开始,另一个从末尾位置开始,逐个字符进行比较。如果存在不相等的字符,则返回0表示不是回文字符串;如果所有字符都匹配,则返回1表示是回文字符串。
阅读全文