每天一道C++笔试题 III --- strcmp
来源:互联网 发布:天津seo源诊断 编辑:程序博客网 时间:2024/05/29 18:55
这道题主要考察指针和字符串(char[]),这是C语言必备的技能,但指针在C++也是重要之极。
题目是大家都熟悉的老调重弹,帮助大家温习之。
不使用库函数,编写函数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++笔试题 III --- strcmp
- 每天一道C\C++笔试题IV---翻转字符串
- 每天一道C\C++笔试题V---内存泄露
- 一道C笔试题
- 每天一道C++笔试题 I
- 每天一道C++笔试题 II
- 每天一道笔试题(腾讯1)
- 【笔试题】C语言:模拟实现strcmp
- 一道C语言笔试题
- 大华一道C笔试题
- C的一道笔试题
- C语言 每天做一道编程题
- 每天一道笔试题-2012年2月16日
- 每天一道笔试题-2012年2月17日
- 每天一道笔试题-2012年2月20日
- 每天一道笔试题-2012年2月21日
- 每天一道笔试题-2012年2月22日
- 每天一道笔试题-2012年2月24日
- hdu2438 Turn the corner 三分
- 项目经理和部门经理的区别
- PHP字符串补全,PHP字符串自动填充,PHP输出固定长度
- wifi最新资料大全
- 对TextFile格式文件的lzo压缩建立index索引
- 每天一道C++笔试题 III --- strcmp
- mysql之存储过程和存储函数
- NSUserDefaults类概述
- 26(48)----windows internals 第6版 mark david alex
- [Unity3D]地形系统的创建与简单设置
- vim中shiftwidth, tabstop, softtabstop和expandtab
- Android 获取状态栏的高度
- 如何查看oracle数据库的端口号?
- oracle数据库和mysql数据库列类型对照