编写一个c语言程序,输入字符串,判断该字符串是否对称。
时间: 2024-02-21 16:57:48 浏览: 87
好的,以下是一个判断字符串是否对称的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int i, j, len, flag = 1;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0, j = len - 1; i < len / 2; i++, j--) {
if (str[i] != str[j]) {
flag = 0;
break;
}
}
if (flag) {
printf("该字符串是对称的。\n");
} else {
printf("该字符串不是对称的。\n");
}
return 0;
}
```
这个程序首先输入一个字符串,然后通过循环判断字符串的前半部分和后半部分是否对称。如果对称,就输出提示信息;否则,也输出相应信息。
相关问题
输入一个字符串判断是否是对称字符串c语言
在C语言中,判断一个字符串是否是对称(也称为回文),可以将字符串一半的字符与另一半的字符逐个比较。以下是一个简单的函数实现示例:
```c
#include <stdio.h>
#include <string.h>
// 函数来检查给定字符串是否对称
int is_palindrome(char str[]) {
int len = strlen(str);
// 如果字符串长度为奇数,中间字符不需要比较
if (len % 2 == 0) {
int i = 0;
int j = len - 1;
while (i < j) {
if (str[i] != str[j])
return 0; // 不是回文,直接返回
i++;
j--;
}
} else {
int i = 0;
int j = len - 1;
while (i < j) {
if (str[i] != str[j])
return 0; // 不是回文,直接返回
i++;
j--;
}
// 中间字符单独处理,因为是奇数长度,中间的那个字符只比较一次
if (str[len / 2] != str[len / 2])
return 0; // 不是回文
}
return 1; // 是回文,返回1
}
int main() {
char test_str[50];
printf("请输入字符串:");
fgets(test_str, sizeof(test_str), stdin); // 防止换行符
test_str[strcspn(test_str, "\n")] = '\0'; // 移除换行符
if (is_palindrome(test_str)) {
printf("%s 是对称字符串。\n", test_str);
} else {
printf("%s 不是对称字符串。\n", test_str);
}
return 0;
}
```
按照以下要求编写c语言程序定义一个字符数组,从键盘给该字符数组赋值(小于20个字符),编写程序判断输入的字符串是否对称。比如adeda就是对称,aweer就不对称,输出结果为对称与否。
好的,以下是按照您的要求编写的C语言程序:
```c
#include <stdio.h>
#include <string.h>
int isSymmetric(char arr[], int length) {
int i, j;
for (i = 0, j = length - 1; i < j; i++, j--) {
if (arr[i] != arr[j]) {
return 0; // 不对称
}
}
return 1; // 对称
}
int main() {
char arr[20];
printf("请输入一个小于20个字符的字符串:");
scanf("%s", arr);
int length = strlen(arr);
int result = isSymmetric(arr, length);
if (result == 1) {
printf("输入的字符串是对称的\n");
} else {
printf("输入的字符串不是对称的\n");
}
return 0;
}
```
在这个程序中,我们使用了`isSymmetric`函数来检查输入的字符串是否对称。该函数接受一个字符数组和数组长度作为参数,然后使用两个指针从数组的两端向中间遍历,比较对应位置的字符是否相等。如果有任意一对字符不相等,就返回0,表示不对称;如果遍历完整个数组都没有发现不相等的字符,就返回1,表示对称。
在`main`函数中,我们首先声明了一个长度为20的字符数组`arr`,用于存储从键盘输入的字符串。然后使用`scanf`函数获取输入的字符串。接着,我们调用`isSymmetric`函数来判断输入的字符串是否对称,并将结果打印出来。
请注意,该程序假设输入的字符串长度不超过20个字符,超过的部分将被丢弃。
阅读全文