c++面试题字符串拷贝函数示例
#include<iostream>
using namespace std;
//字符串拷贝函数
char * sCpy(char *strDest, char *strSource)
{
_ASSERT((strDest != NULL) && (strSource!=NULL));
char *d = strDest; //获取dest的当前位置
char *s = strSource; //获取source的当前位置
while ((*d++ = *s++) != '\0') //未到最后一位,作循环
{
}
*d = '\0'; //补充最后一位
return strDest;
}
int main()
{
char *strSource = "hello,world";
char *strDest = new char[strlen(strSource)+1]; //注意,strlen函数的返回长度是不包括'\0'的,所以要加1
_ASSERT(strDest != NULL);
char *strReturn = sCpy(strDest,strSource);
cout<<"形参返回值"<<strDest<<endl;
cout<<"函数返回值"<<strReturn<<endl;
//不作释放操作也应该是没问题的,主线程退出后系统会回收资源
delete strSource,strDest,strReturn;
strSource = strDest = strReturn = NULL;
return 0;
}
strcpy(str1,str2)函数能够将str2中的内容复制到str1中,为什么还需要函数返回值?应该是方便实现链式表达式,比如:
int i_length = strlen(strcpy(str1,str2));
相关推荐
-
分享C++面试中string类的一种正确写法
具体来说: 能像 int 类型那样定义变量,并且支持赋值.复制. 能用作函数的参数类型及返回类型. 能用作标准库容器的元素类型,即 vector/list/deque 的 value_type.(用作 std::map 的 key_type 是更进一步的要求,本文从略). 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误. 复制代码 代码如下: void foo(String x) { } void bar(const String& x) { } Strin
-
C++ 面试题翻译电话号码实例代码
C++ 面试题翻译电话号码实例代码 例如: 输入:OneTwoThree 输出:123 输入:OneTwoDoubleTwo 输出:1222 输入:1Two2 输出:ERROR 输入:DoubleDoubleTwo 输出:ERROR 有空格,非法字符,两个Double相连,Double位于最后一个单词 都错误. #include <iostream> #include <string> using namespace std; void process(string str) {
-
C++实现八皇后问题的方法
本文实例展示了C++实现八皇后问题的方法,是数据结构与算法中非常经典的一个算法.分享给大家供大家参考之用.具体方法如下: 一般在八皇后问题中,我们要求解的是一个8*8的国际象棋棋盘中,放下8个皇后且互相不能攻击的排列总数.皇后的攻击范围为整行,整列,以及其斜对角线. 由于皇后的攻击范围特性,注定我们每行只能放下一个皇后,于是我们要做的只是逐行放下皇后.八皇后问题是回溯法的典型问题.这里我们用的方法很简单: 从第一行开始逐个检索安全位置摆放皇后,一旦有安全位置则考虑下一行的安全位置.如果发现某行没
-
C++面试题之数a、b的值互换(不使用中间变量)
题目要求:将数a.b的值进行交换,并且不使用任何中间变量. 程序如下: #include<stdio.h> void swapValue1(int &a, int &b) //使用中间变量交换数据 { int temp = a; a = b; b = temp; } void swapValue2(int &a, int &b)//使用加减运算完成数据交换 { a = a + b; b = a - b; a = a - b; } void swapValue3(
-
C++面试常见问题整理汇总
本文总结讲述了C++面试常见问题.分享给大家供大家参考,具体如下: 1. 继承方式 public 父类的访问级别不变 protected 父类的public成员在派生类编程protected,其余的不变 private 父类的所有成员变成private #include <iostream> using namespace std; class base { public: void printa() { cout <<"base"&
-
从string类的实现看C++类的四大函数(面试常见)
朋友面试的一道面试题,分享给大家,面试官经常会问到的,实现string类的四大基本函数必掌握. 一个C++类一般至少有四大函数,即构造函数.拷贝构造函数.析构函数和赋值函数,一般系统都会默认.但是往往系统默认的并不是我们所期望的,为此我们就有必要自己创造他们.在创造之前必须了解他们的作用和意义,做到有的放矢才能写出有效的函数. #include <iostream> class CString { friend std::ostream & operator<<(std::
-
采用C++实现区间图着色问题(贪心算法)实例详解
本文所述算法即假设要用很多个教室对一组活动进行调度.我们希望使用尽可能少的教室来调度所有活动.采用C++的贪心算法,来确定哪一个活动使用哪一间教室. 对于这个问题也常被称为区间图着色问题,即相容的活动着同色,不相容的着不同颜色,使得所用颜色数最少. 具体实现代码如下: //贪心算法 #include "stdafx.h" #include<iostream> #define N 100 using namespace std; struct Activity { int n
-
总结C/C++面试中可能会碰到的字符串指针题
前言 不知道大家有没有这种体会,很多面试题看似简单,却需要深厚的基本功才能给出完美的解答.企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分.读者可从本文看到 strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次.此外,还有一些面试题考查面试者敏捷的思维能力. 分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的
-
C++中求旋转数组中的最小数字(经典面试题)
面试题:旋转数组的最小数字 题目:把一个数组的最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增数组的旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. 算法: (1)当输入的旋转数组非法时:处理! (2)当输入的旋转数组正常时,index1 = 0:index2=length-1: a:如果arry[index1] <arry[index2]时:说明数组为原数组,并没有进行旋转: b:如果arry[ind
-
C++动态规划之背包问题解决方法
本文实例讲述了C++动态规划之背包问题解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 背包的最大容量为W,有N件物品,每件物品重量为w,价值为p,怎样选择物品能使得背包里的物品价值最大? 输入: 10 3 (W,N) 4 5 (w,p) 6 7 (w,p) 8 9 (w,p) 实现代码: #include <stdio.h> #define THING 20 #define WEIGHT 100 int arr[THING][WEIGHT]; /* 背包容量为wei
随机推荐
- 进制转换算法原理(二进制 八进制 十进制 十六进制)
- JavaScript中原型链存在的问题解析
- php的curl封装类用法实例
- PHP持久连接mysql_pconnect()函数使用介绍
- Android自定义view实现阻尼效果的加载动画
- Android编程之点击按钮的响应方式小结【3种方式】
- 浅谈jQuery异步对象(XMLHttpRequest)
- 浅谈ctrl+c,ctrl+d,ctrl+z在linux中的意义
- 动态生成页面元素的代码
- Jquery 焦点图 用于图片展示效果代码
- jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
- NodeJS制作爬虫全过程
- 微信小程序 UI与容器组件总结
- IO多路复用之poll全面总结(必看篇)
- spring security国际化及UserCache的配置和使用
- php+ajax登录跳转登录实现思路
- VTP不能在交换机间同步的几种情况
- Python字典,函数,全局变量代码解析
- JS生成随机打乱数组的方法示例
- Android编程基于自定义控件实现时钟功能的方法