//reverse.c
/*************************************************************
FileName : reverse.c
FileFunc : 反转一个字符串或者数组中的数据
Version : V0.1
Author : Sunrier
Date : 2012-07-05 11:26:42
Descp : Linux下实现反转一个字符串或者数组中的数据
*************************************************************/
#include
#include
/*字符串*/
unsigned char reverse(unsigned char *pucStr)
{
unsigned int uiI,uiJ,uiLen=0;
uiLen = strlen(pucStr);
if( 0==uiLen )
return 1;
for( uiI = 0 , uiJ = uiLen - 1 ; uiI < uiJ ; uiI++ , uiJ--)
{
/*pucStr[uiI] ^= pucStr[uiJ] ^= pucStr[uiI] ^= pucStr[uiJ];*/ /*直接使用这一句有些机器上出现bug*/
pucStr[uiI] ^= pucStr[uiJ];
pucStr[uiJ] ^= pucStr[uiI];
pucStr[uiI] ^= pucStr[uiJ];
}
return 0;
}
/*数组*/
unsigned char reverse_ex(unsigned int *puiStr,unsigned int uiLen)
{
unsigned int uiI,uiJ;
if( 0==uiLen )
return 1;
for( uiI = 0 , uiJ = uiLen - 1 ; uiI < uiJ ; uiI++ , uiJ--)
{
/*puiStr[uiI] ^= puiStr[uiJ] ^= puiStr[uiI] ^= puiStr[uiJ];*/
puiStr[uiI] ^= puiStr[uiJ];
puiStr[uiJ] ^= puiStr[uiI];
puiStr[uiI] ^= puiStr[uiJ];
}
return 0;
}