【问题描述】实现一个函数,判断输入字符串是否对称?
例如,
1234554321,symmetry;
12345654321,symmetry;
1,symmetry
【解题思路】
见代码
- 代码:
代码:
- #include <string>
- #include <iostream>
- using namespace std;
- #define MAX 100
- bool symmetry(char *str)
- {
- int n;
- n=strlen(str);
- /*
- //如果字符串为NULL,或者只有一个字符
- if (n==0 || n==1)
- return true;
- */
- //如果有一个字符不对称,那么字符串就是不对称
- for (int i=0;i<n/2;++i)
- {
- if (*(str+i) != *(str + n-1 -i))
- return false;
- }
- return true;
- }
- int main()
- {
- //定义一个数组,从标准输入输入字符串
- char array[MAX];
- cin>>array;
- //用数组名初始化指针str
- char *str=array;
- //
- cout<<"This string is symmerty or not: "<<symmetry(str)
- <<endl<<endl;
- return 0;
- }
- /*
- 统计字符串长度
- 1.
- n=strlen(str);
- 2.
- int n=0;
- while(*p != '\0') //指向的内容与字符'\0'作比较
- {
- ++n;
- ++p; //地址自增
- }
- */