您的位置:首页 > 编程语言 > C语言/C++

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

2006-09-24 00:51 369 查看
前一个来月,一直在外面找工作,做了一些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' 这样的问题。所以说,面试答题不要偷懒,不能怕想就用不动脑子的方法,还是要多注意下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: