昨天微软笔试的一道题目

gg137zeus 2005-11-14 02:52:56
#define mkupper(c) ((c)-'a'+'A')

void StringToUpper (char * pStr)
{
while(pStr)
{
*pStr=mkupper(*pStr);
pStr++;
}
}

int main()
{
char *tmp="aBcdef";
StringToUpper(tmp);
return 0;
}

这段程序,有什么bug,列出来!
嘿嘿,大家帮我看看!
...全文
650 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovememememe 2006-02-05
  • 打赏
  • 举报
回复
mark
manmanzhen 2005-11-15
  • 打赏
  • 举报
回复
You should write const char* tmp = "aBcdef" and how do you handle the 'B'?
i do not think so ,u'd better think it over
jixingzhong 2005-11-14
  • 打赏
  • 举报
回复
回复人:sankt(黄景天) ( ) 信誉:100 2005-11-13 19:48:00 得分:0

#define toupper(c) ((c) - 'a' + 'A')

void ToUpperString (char * str)
{
while (*str)
{
if (*str<='z' && *str>='a')
* str = toupper (* str);
str++;
}
}

int main ()
{
char tmp[] = "deBsaf";
ToUpperString (tmp);
return 0;
}

yuanchuang 2005-11-14
  • 打赏
  • 举报
回复
Mark
at_yuan2 2005-11-14
  • 打赏
  • 举报
回复
1。字符串中当含有大写字母或非字母的字符时,
2。修改字符常量区,
Bobby136 2005-11-14
  • 打赏
  • 举报
回复
xiaocai0001 什么时候成了版主了??
snowbirdfly 2005-11-14
  • 打赏
  • 举报
回复
恩~~
一个方面大写字母B处理就不对了~~
另外一个方面就是char *tmp也不能改变~~
zhouqingyuan 2005-11-14
  • 打赏
  • 举报
回复
You should write const char* tmp = "aBcdef" and how do you handle the 'B'?
xiaocai0001 2005-11-14
  • 打赏
  • 举报
回复
重复帖, 鉴于楼主不知情

准许楼主在两日内结帖. 否则将按重复帖处理, 删除.
x86 2005-11-14
  • 打赏
  • 举报
回复
1. 宏定义也许会有不可预知的错误
2. 修改了 char *tmp, 这样的定义是不能被修改的
moany 2005-11-14
  • 打赏
  • 举报
回复
老兄,你的动作太慢了
http://community.csdn.net/Expert/TopicView3.asp?id=4390553

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧