实现一个函数,判断输入字符串是否对称

【问题描述】实现一个函数,判断输入字符串是否对称?

例如,

1234554321,symmetry;

12345654321,symmetry;

1,symmetry


【解题思路】

见代码


  1. 代码:  
代码:

  1. #include <string>  
  2. #include <iostream>  
  3. using namespace std;  
  4.   
  5. #define MAX 100  
  6.   
  7. bool symmetry(char *str)  
  8. {  
  9.     int n;  
  10.     n=strlen(str);  
  11.   
  12.     /* 
  13.     //如果字符串为NULL,或者只有一个字符 
  14.     if (n==0 || n==1) 
  15.         return true; 
  16.     */  
  17.   
  18.     //如果有一个字符不对称,那么字符串就是不对称  
  19.     for (int i=0;i<n/2;++i)  
  20.     {  
  21.         if (*(str+i) != *(str + n-1 -i))  
  22.             return false;     
  23.     }  
  24.   
  25.     return true;  
  26. }  
  27.   
  28. int main()  
  29. {  
  30.     //定义一个数组,从标准输入输入字符串  
  31.     char array[MAX];  
  32.     cin>>array;  
  33.   
  34.     //用数组名初始化指针str  
  35.     char *str=array;  
  36.   
  37.     //  
  38.     cout<<"This string is symmerty or not: "<<symmetry(str)  
  39.         <<endl<<endl;  
  40.   
  41.     return 0;  
  42. }  
  43.   
  44. /* 
  45. 统计字符串长度 
  46.  
  47. 1. 
  48. n=strlen(str);  
  49.  
  50. 2. 
  51. int n=0; 
  52.  
  53. while(*p != '\0') //指向的内容与字符'\0'作比较 
  54. { 
  55.    ++n; 
  56.    ++p; //地址自增 
  57. } 
  58.  
  59. */  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值