C++实现回文

来源:互联网 发布:c语言中长整型变量 编辑:程序博客网 时间:2024/05/20 05:05

*.h文件

#ifndef _HWCHANGE_H
#define _HWCHANGE_H


#include <stdio.h>
#include <stdlib.h>
#include <string.h>


#define MAX_SIZE 256


class CHuChange
{
     public:
         CHuChange();
         virtual ~CHuChange();
         bool change(char *str);
 
         char* get_info();
 
         void relese();
     public:
        char* Buf;
 };
 
#endif

 

*.cpp文件

 

#include "hu_change.h"
 
CHuChange::CHuChange()
{
     Buf = NULL;
}
 
CHuChange::~CHuChange()
{
     if (Buf != NULL)
      {
  //      free(Buf);
 //      Buf = NULL;
      }
}
 
void CHuChange::relese()
{
     if (Buf != NULL)
     {
       free(Buf);
        Buf = NULL;
    }
}

bool CHuChange::change(char* str)
{
     if (NULL == str)
     {
         perror("str is null");
         return false;
     }
 
     int     len = strlen(str);
     Buf = (char*)malloc(sizeof(char) * (len + 1));
 
     char*   buf1 = Buf;
     while(*str != '/0')
     {
         *buf1++ = *str++;
     }
 
    *str--;
 
     for(int i = 0; i<len; i++)
     {
         *buf1++ = *str--;
     }
 
     *buf1 = '/0';


      return true;
 }
 
char* CHuChange::get_info()
{
    return Buf;
}

 

测试代码

#include <stdio.h>
#include "hu_change.h"
 
int main()
 {
     printf("please input a string:/n");
 
     char str[MAX_SIZE] = {0};
     scanf("%s",&str);
 
     CHuChange c_hu_change;
     c_hu_change.change(str);
     char* buf = c_hu_change.get_info();
 
     printf("the hu_change string is %s/n",buf);
 
     c_hu_change.relese();
 
     return 0;
}

 

有问题的话 欢迎指教 O(∩_∩)O~

原创粉丝点击