OJ

来源:互联网 发布:eclipse java oxygen 编辑:程序博客网 时间:2024/05/09 16:50

#include <stdlib.h>
#include <string.h>
#include "oj.h"


/*
功能:字符串处理
   
输入:两个字符串,需要异常处理
   
输出:合并处理后的字符串,具体要求参考文档
    
返回:无
    
*/

void  StringOddEvenSort(char*  strSer)
{
  int   sLen = 0;
 char  iTemp = 0;
 char  *strOdd = NULL;
 char  *strEven = NULL;

 if  (NULL==strSer)
 {
  return;
 }
 sLen = strlen(strSer);
 // 奇数项排序
 for(int i = 0;i<sLen -2; i+=  2)
 {
  for(int j =0;j<sLen-2;j+=2)
  {
   if(strSer[j] > strSer[j+2])
   {
    iTemp  =  strSer[j];
    strSer[j]  =  strSer[j+2];
    strSer[j+2]  =  iTemp;
   }
  }
 }
 //偶数项排序
 for(int i = 1;i<sLen-2;i+=  2)
 {
  for(int j =1;j<sLen-2;j+=2)
  {
   if(strSer[j]>strSer[j+2])
   {
    iTemp  =  strSer[j];
    strSer[j]  =  strSer[j+2];
    strSer[j+2]  =  iTemp;
   }
  }
 }
}

void  BITReverSort(char* pstrSort)
{
 int sLen = 0;
 int iIndex = 0;
 char BIT[16]={'0','8','4','C','2','A','6','E','1','9','5','D','3','B','7','F'};

 if(NULL==pstrSort)
 {
  return;
 }
 sLen=strlen(pstrSort);
 for(int i=0;i<sLen;i++)
 {
  if(pstrSort[i]>='0'&& pstrSort[i]<='9')
  {
   iIndex = pstrSort[i] - '0';
   pstrSort[i]=BIT[iIndex];
  }
  else if (pstrSort[i] >='a' && pstrSort[i] <='f')
  {
   iIndex=pstrSort[i]-'a'+10;
   pstrSort[i]=BIT[iIndex];
  }
  else if(pstrSort[i]>='A' && pstrSort[i]<='F')
  {
   iIndex=pstrSort[i]-'A'+10;
   pstrSort[i]= BIT[iIndex];
  }
 }
}

 

void ProcessString(char* str1,char *str2,char * strOutput)
{
 int  Len1  =  0;
 int  Len2  =  0;

 if  (NULL==str1||NULL==str2||NULL==strOutput)
 {
  return;
 }
 if  ('\0'==*str1 && '\0'==*str2)
 {
  return;
 }

 Len1  =  strlen(str1);
 Len2  =  strlen(str2);

 if  ('\0' == *str1)
 {
  memcpy(strOutput, str2, Len2 + 1);
 }
 else  if('\0' == *str2)
 {
  memcpy(strOutput, str1, Len1 + 1);
 }
 else
 {
  memcpy(strOutput, str1, Len1 + 1);
  strcat(strOutput, str2);
 }

 //奇偶项排序
 StringOddEvenSort(strOutput);

 //BIT倒排
 BITReverSort(strOutput);   


}

原创粉丝点击