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++实现八皇后问题的方法
本文实例展示了C++实现八皇后问题的方法,是数据结构与算法中非常经典的一个算法.分享给大家供大家参考之用.具体方法如下: 一般在八皇后问题中,我们要求解的是一个8*8的国际象棋棋盘中,放下8个皇后且互相不能攻击的排列总数.皇后的攻击范围为整行,整列,以及其斜对角线. 由于皇后的攻击范围特性,注定我们每行只能放下一个皇后,于是我们要做的只是逐行放下皇后.八皇后问题是回溯法的典型问题.这里我们用的方法很简单: 从第一行开始逐个检索安全位置摆放皇后,一旦有安全位置则考虑下一行的安全位置.如果发现某行没
-
采用C++实现区间图着色问题(贪心算法)实例详解
本文所述算法即假设要用很多个教室对一组活动进行调度.我们希望使用尽可能少的教室来调度所有活动.采用C++的贪心算法,来确定哪一个活动使用哪一间教室. 对于这个问题也常被称为区间图着色问题,即相容的活动着同色,不相容的着不同颜色,使得所用颜色数最少. 具体实现代码如下: //贪心算法 #include "stdafx.h" #include<iostream> #define N 100 using namespace std; struct Activity { int n
-
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
-
总结C/C++面试中可能会碰到的字符串指针题
前言 不知道大家有没有这种体会,很多面试题看似简单,却需要深厚的基本功才能给出完美的解答.企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很可能只能拿到10分中的2分.读者可从本文看到 strcpy函数从2分到10分解答的例子,看看自己属于什么样的层次.此外,还有一些面试题考查面试者敏捷的思维能力. 分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的
-
分享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++面试常见问题.分享给大家供大家参考,具体如下: 1. 继承方式 public 父类的访问级别不变 protected 父类的public成员在派生类编程protected,其余的不变 private 父类的所有成员变成private #include <iostream> using namespace std; class base { public: void printa() { cout <<"base"&
-
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(
-
从string类的实现看C++类的四大函数(面试常见)
朋友面试的一道面试题,分享给大家,面试官经常会问到的,实现string类的四大基本函数必掌握. 一个C++类一般至少有四大函数,即构造函数.拷贝构造函数.析构函数和赋值函数,一般系统都会默认.但是往往系统默认的并不是我们所期望的,为此我们就有必要自己创造他们.在创造之前必须了解他们的作用和意义,做到有的放矢才能写出有效的函数. #include <iostream> class CString { friend std::ostream & operator<<(std::
随机推荐
- JavaWeb 简单分页实现代码
- iOS App设计模式开发中对迭代器模式的使用示例
- Java 读写Properties配置文件详解
- Java编程中的vector类用法学习笔记
- jquery获取img的src值的简单实例
- php使用websocket示例详解
- JS实现字体选色板实例代码
- JavaScript实现滚动栏效果的方法
- javascript中定义类的方法详解
- 检测邮箱地址是否合法 Check Mail Address (For: IE5+、FF1.06、Opera 7+ ...)[
- 基于JavaScript实现图片连播和联级菜单实例代码
- 详解如何在Spring Boot项目使用参数校验
- C语言中strcmp的实现原型
- JQuery从头学起第一讲
- Docker 配置网络使用bridge网络的方法
- python移位运算的实现
- Python3 无重复字符的最长子串的实现
- Makefile/cmake/node-gyp中区分判断不同平台的方法
- Docker部署Kafka以及Spring Kafka实现
- 在react中使用vuex的示例代码