c++实现strcat字符串连接库函数的方法详解_C 语言

原型
  extern char *strcat(char *dest,char *src);
用法
  #include <string.h>
功能
  把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明
  src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。   
  返回指向dest的指针。
举例
   char str4[] = "Hello world";
   char str5[] = "Hello World";
   cout << strcat(str4,str5) << endl;
会出错,因为str4没有足够的空间
下面是我自己的一个实现,不足之处,还望指正!!!

复制代码 代码如下:

#include "stdafx.h"
#include <iostream>
#include <assert.h>
using namespace std;
//连接字符串
char* mystrcat(char* destStr,const char* srcStr)  //如果两个字符串是同一个字符串呢?
{
 assert(destStr != NULL && srcStr != NULL);
 char* temp=destStr;
 while(*destStr != '\0')
 {
  ++destStr;
 }
 while(*destStr++ = *srcStr++)
  NULL;
 return temp; //为了实现链式操作,将目的地址返回
}
int _tmain(int argc, _TCHAR* argv[])
{
 char str1[25] = "Hello world";
 char str2[] = "Hello World";
 cout << mystrcat(str1,str2) << endl;
 return 0;
}

时间: 2024-08-30 00:54:26

c++实现strcat字符串连接库函数的方法详解_C 语言的相关文章

C/C++字符串函数之复制函数详解_C 语言

突然发现对字符串函数缺乏系统的了解,所以花了一点时间专门整理下,在此记录之,以方便自己及有需要的人使用. C/C++字符串函数的头文件:string.h 复制函数主要有4个,如下: 1.char * strcpy(char* destination,const char * source); 2.char* strncpy(char* destination,const char* source,size_t num); 3.void * memcpy(void* destination,con

C++ 整数拆分方法详解_C 语言

一.问题背景 整数拆分,指把一个整数分解成若干个整数的和 如 3=2+1=1+1+1 共2种拆分 我们认为2+1与1+2为同一种拆分 二.定义 在整数n的拆分中,最大的拆分数为m,我们记它的方案数为 f(n,m) 即 n=x1+x2+······+xk-1+xk ,任意 x≤m 在此我们采用递归递推法 三.递推关系 1.n=1或m=1时 拆分方案仅为 n=1 或 n=1+1+1+······ f(n,m)=1 2.n=m时 S1选取m时,f(n,m)=1,即n=m S2不选取m时,f(n,m)=

C++中可以接受任意多个参数的函数定义方法(详解)_C 语言

能够接受任意多个参数的函数,可以利用重载来实现.这种函数的执行过程类似于递归调用,所以必须要有递归终止条件. #include <iostream> #include <bitset> void print() {} // 递归终止条件.这是必需的. template<typename Type, typename... Types> void print(const Type& arg, const Types&... args) { std::cou

数据结构课程设计-用栈实现表达式求值的方法详解_C 语言

1.需求分析设计一个程序,演示用算符优先法对算术表达式求值的过程.利用算符优先关系,实现对算术四则混合运算表达式的求值.(1)输入的形式:表达式,例如2*(3+4)     包含的运算符只能有'+' .'-' .'*' .'/' .'('. ')':(2)输出的形式:运算结果,例如2*(3+4)=14:(3)程序所能达到的功能:对表达式求值并输出 2.系统设计1.栈的抽象数据类型定义:ADT Stack{数据对象:D={ai|ai∈ElemSet,i=1,2,-,n,n≥0}数据关系:R1={<

基于C++字符串替换函数的使用详解_C 语言

在C++中,字符串替换有很多方法,这里主要说一下STL里的WString中的替换,虽然WString自带了一个Replace函数,但是只能替换一次,太不好了,因此单独写了个替换函数[函数] 复制代码 代码如下: /**         * @brief   实现字符串替换         * @param   orignStr 源串         * @param   oldStr  查找的串         * @param   newStr  替换的新串         * @return

C++中的auto_ptr智能指针的作用及使用方法详解_C 语言

智能指针(auto_ptr) 这个名字听起来很酷是不是?其实auto_ptr 只是C++标准库提供的一个类模板,它与传统的new/delete控制内存相比有一定优势,但也有其局限.本文总结的8个问题足以涵盖auto_ptr的大部分内容.  auto_ptr是什么? auto_ptr 是C++标准库提供的类模板,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同时被分给两个拥有者.当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥

C++的字符串分割函数的使用详解_C 语言

经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全,可以使用strtok_r替代. 示例: //借助strtok实现split #include <st

C语言中字符的输入输出以及计算字符个数的方法详解_C 语言

C语言字符输入与输出 标准库提供的输入/输出模型非常简单.无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理.文本流是由多行字符构成的字符序列,而每行字符则由 0 个或多个字符组成,行末是一个换行符.标准库负责使每个输入/输出流都能够遵守这一模型.使用标准库的 C 语言程序员不必关心在程序之外这些行是如何表示的. 标准库提供了一次读/写一个字符的函数,其中最简单的是 getchar 和 putchar 两个函数.每次调用时,getchar 函数从文本流中读入下一个输入字符,并将

VC++中进程与多进程管理的方法详解_C 语言

本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. 关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈.堆分