面试C++题目,字符串拷贝与小写换大写

        前一个来月,一直在外面找工作,做了一些C++题目,当时感觉还行,但是回家后仔细总结后,发现原本很看似很简单的题目面试时答的不是很好,于是写了出来,和大家交流交流。

         以下是字符串拷贝函数和小写换大写,这两个面试考了多次,尤其是字符串拷贝。

char* my_strcpy( char *strTarget, const char *strSource )
{
 ASSERT( NULL != strTarget);
 ASSERT( NULL != strSource);

 char *strRet = strTarget;
 while ( *strSource != '/0')
 {
  *strTarget = *strSource;

  strTarget++;
  strSource++;
 }

 return strRet;
}

void ChangeLowercaseIntoMajuscule( char** ppszString )
{
 ASSERT( NULL != ppszString );
 ASSERT( NULL != (*ppszString) );

 char ch = 0;
 do
 {
  if ( (**ppszString >= 'a') && (**ppszString <= 'z') )
  {
   ch = **ppszString;
   **ppszString = 'A' + ( ch - 'a' );
  }
 }
 while( (*((*ppszString)++)) != '/0' );

 return;
}

第二道题目别忘了char实际上是整数,所以向'A'- 'a' 这样是可以的。记得我当时这边写的是伪代码,是 “A的  ACS码  +  ch 的 ACS码 - a的 ACS码”,后来人家问我为啥这样写,还有别的办法没有,我才知道他要考的还有向'A'- 'a' 这样的问题。所以说,面试答题不要偷懒,不能怕想就用不动脑子的方法,还是要多注意下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值