输入一个以回车结束的字符串,判断该字符串是否对称(正序与逆序相同,如aBc2cBa为对称字符串)

编程思路一:将输入的字符串按照逆序存放到另一个数组中,比较两者是否相同,如是,则为对称字符串

#include<stdio.h>

#include<string.h>

int main()

{

    int i, length;

    char str1[80], str2[80];

    printf("Enter a string:");

    gets(str1);//取得一字符串

    length = strlen(str1);//计算数组个数

    for (i = 0; i < length; i++)

    {

         str2[i] = str1[length -1- i];//逆序存放

    }

    if (strcmp(str1,str2)==0)//strcmp两字符串比较函数

         printf("Yes\n");

    else

         printf("No\n");

    return 0;

}

编程思路二:按首尾字符两两比较输入的字符串,即第1位与最后1位比较,第2位与倒数第2位比较……如果每一对字符均相对,则为对称字符串。

#include<stdio.h>

#include<string.h>

int main()

{

    int i, length;

    char str[80];

    printf("Enter a string:");

    gets(str);

    length = strlen(str);

    for (i = 0; i < length/2; i++)

    {

         if (str[i] != str[length-1-i])

         {

             break;//首尾字符两两比较不相等则停止循环

         }

    }

    if (i >= length / 2)

         printf("Yes\n");//当首尾元素比完相等时打印yes

    else

         printf("No\n");

    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值