c语言头尾数据交换反转字符串,C/C++语言之数据交换、字符串转数字、字符串反转、小写转大写、二分查找...

#include //1、数据交换的两种方式(不用第三个变量)

bool SwapA(int& a, int& b)

{

if(a == b)

return false;

a = a ^ b;

b = a ^ b;

a = a ^ b;

return true;

}

bool SwapB(int& a, int& b)

{

if(a == b)

return false;

a = a + b;

b = a - b;

a = a - b;

return true;

}

//2、字符串转数字

int Myatoi(const char* pString)

{

assert(0 != pString);

const int len = strlen(pString);

int value = 0;

int times = 1;

for(int i = len - 1; i >= 0; --i, times *= 10)

{

value += (pString[i] - '0') * times;

}

return value;

}

//3、字符串反转

char* MyInverted(char* pDest)

{

assert(0 != pDest);

const int len = strlen(pDest);

char T = 0;

for(int i = 0; i < len / 2; ++i)

{

T = pDest[i];

pDest[i] = pDest[len - i - 1];

pDest[len - i - 1] = T;

}

return pDest;

}

//4、小写转大写

char* MyUpper(char* pDest)

{

assert(0 != pDest);

for(char* i = pDest; *i != '\0'; ++i)

{

if(*i < 'a' || *i > 'z')

continue;

(*i) -= ('a' - 'A');

}

return pDest;

}

//5、二分查找(已降序)

int BinarySerach(int *pArray, int Count, int value)

{

assert(0 != pArray);

int left = 0;

int right = Count - 1;

int mid = 0;

while(left < right)

{

mid = (left + right) / 2;

if(value > pArray[mid])

{

right = mid - 1;

}

else if(value < pArray[mid])

{

left = mid + 1;

}

else

{

return mid;

}

}

return -1;

}

int main(int argc, char* argv[])

{

char string[] = "123456a";

std::cout<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值