C++常用库函数

C++常用库函数

1.//整数转换成字符串itoa函数的实现

#include "stdafx.h"

#include <iostream>

using namespace std;

void itoaTest(int num,char str[] )

{

       int sign = num,i = 0,j = 0;

       char temp[11];

       if(sign<0)//判断是否是一个负数

       {

              num = -num;

       };

       do

       {

              temp[i] = num%10+'0';        

              num/=10;

              i++;

       }while(num>0);

       if(sign<0)

       {

              temp[i++] = '-';

       }

       temp[i] = '\0';

       i--;

       while(i>=0)

       {

              str[j] = temp[i];

              j++;

              i--;

       }

       str[j] = '\0';

}

2. //字符串转换成整数atoi函数的实现

int atoiTest(char s[])

{

       int i = 0,sum = 0,sign;    //输入的数前面可能还有空格或制表符应加判断

       while(' '==s[i]||'\t'==s[i])

       {

              i++;

       }

       sign = ('-'==s[i])?-1:1;

       if('-'==s[i]||'+'==s[i])

       {

              i++;

       }

       while(s[i]!='\0')

       {

              sum = s[i]-'0'+sum*10;

              i++;

       }    

       return sign*sum;

}

3.//字符串拷贝函数

#include "stdafx.h"

#include <assert.h>

#include <string.h>

#include <iostream>

using namespace std;

char *srcpy(char *dest,const char *source)

{

       assert((dest!=NULL)&&(source!=NULL));

       char *address = dest;

       while(*source!='\0')

       {

              *dest++=*source++;

       }

       *dest = '\0';

       return address;

}

4.//判断输入的是否是一个回文字符串

#include "stdafx.h"

#include <string.h>

#include <iostream>

using namespace std;

//方法一:借助数组

bool isPalindrome(char *input)

{

       char s[100];

       strcpy(s,input);

       int length = strlen(input);

       int begin = 0,end = length-1;

       while(begin<end)

       {

              if(s[begin]==s[end])

              {

                     begin++;

                     end--;

              }

              else

              {

                     break;

              }           

       }

       if(begin<end)

       {

              return false;

       }    

       else

       {

              return true;

       }     

}

//方法二:使用指针

bool isPalindrome2(char *input)

{

       if(input==NULL)

              return false;

       char *begin = input;

       char *end = begin+strlen(input)-1;

       while(begin<end)

       {

              if(*begin++!=*end--)

                     return false;

       }

       return true;

}

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

{

       char *s ="1234554321";

       if(isPalindrome(s))

       {

              cout<<"True"<<endl;

       }

       else

       {

              cout<<"Fasle"<<endl;

       }

       if(isPalindrome2(s))

       {

              cout<<"True"<<endl;

       }

       else

       {

              cout<<"Fasle"<<endl;

       }

       cin.get();

       return 0;

}

5.//不使用库函数,编写函数int strcmp(char *source, char *dest),若相等返回0,否则返回-1

int strcmp(char *source, char *dest)

{

       assert(source != NULL && dest != NULL);

       while(*source++==*dest++)

       {

              if(*source=='\0'&&*dest=='\0')

                     return 0;        

       }

       return -1;

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值