每天一道C++笔试题 III --- strcmp
2013-01-19 10:42
225 查看
这道题主要考察指针和字符串(char[]),这是C语言必备的技能,但指针在C++也是重要之极。
题目是大家都熟悉的老调重弹,帮助大家温习之。
不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1。
背景知识:
char string[] = "luck";
1、字符数组的最后添加一个结束字符'\0'就是字符串。
2、用printf("%s",string)即可打印此字符串。
3、数组名string表示数组的首地址。与指针的关系如下代码:
解题思路:
最简单:做一个循环,对比两个字符串的元素是否相同,不同则返回-1;循环结束后没有找到不同,返回0.
逻辑清晰后,上面两个判断条件可以更加精简一些,下面是全部测试代码:
题目是大家都熟悉的老调重弹,帮助大家温习之。
不使用库函数,编写函数int strcmp(char *source, char *dest) 相等返回0,不等返回-1。
背景知识:
char string[] = "luck";
1、字符数组的最后添加一个结束字符'\0'就是字符串。
2、用printf("%s",string)即可打印此字符串。
3、数组名string表示数组的首地址。与指针的关系如下代码:
#include <stdio.h> int main() { char string[] = "luck"; char * pString = string; printf("string:%s",pString); return 0; }
解题思路:
最简单:做一个循环,对比两个字符串的元素是否相同,不同则返回-1;循环结束后没有找到不同,返回0.
int strcmp(char *source,char *dest) { while(*source != '\0') { if((*source - *dest) != 0) { printf("return %d \n",*source - *dest); return -1; } else { printf("point ++ \n"); source++; dest++; } } return 0; }
逻辑清晰后,上面两个判断条件可以更加精简一些,下面是全部测试代码:
#include <stdio.h> int strcmp(char *source,char *dest) { while(*source) { if(*source - *dest) { printf("return %d \n",*source - *dest); return -1; } else { printf("point ++ \n"); source++; dest++; } } return 0; } int main() { int returnValue; char str1[80],str2[80]; printf("please input a string:"); scanf("%s",str1); printf("please input another string:"); scanf("%s",str2); returnValue = strcmp(str1,str2); if(returnValue == 0) { printf("Same string!"); } else { printf("Different string!"); } return 0; }
相关文章推荐
- 每天一道C++笔试题 I
- 每天一道C++笔试题 II
- C++及Windows异常处理(try,catch; __try,__finally; __try, __except) ----一道笔试题引起的探究
- 每天一道笔试题-2012年2月21日
- 每天一道笔试题-2012年3月1日
- 每天一道笔试题-2012年3月12日
- C++及Windows异常处理(try,catch; __try,__finally; __try, __except)——一道笔试题引起的探究
- 一道C++笔试题
- C++学习---一道笔试题:测试当前电脑系统是大端存储还是小端存储数据
- 【校园招聘】一道笔试题看c++中virtual覆盖
- c++笔试题两道,求解当中一道
- 每天一道笔试题-2012年2月24日
- 每天一道笔试题-2012年3月1日
- 一道关于C++ 继承/虚函数 笔试题
- 详解一道C++笔试题,考察重载、覆盖、多态
- 群硕一道笔试题(java,c++)
- 一道C++的笔试题
- 每天一道笔试题-2012年2月22日
- union--一道经典的C++笔试题
- 每天一道笔试题-2012年2月22日