c++strcat文字列接続ライブラリ関数を実現する方法の詳細

1239 ワード

プロトタイプextern char*strcat(char*dest,char*src);
使用法#include
機能はsrcで指す文字列をdestの末尾(destの末尾の'0'を上書き)に追加し、'0'を追加します.
説明srcとdestが指すメモリ領域は重なり合ってはいけないし、destはsrcの文字列を収容するのに十分な空間を持っていなければならない.  
destを指すポインタを返します.
例を挙げる
char str4[] = "Hello world";   char str5[] = "Hello World";   cout << strcat(str4,str5) << endl;str 4には十分なスペースがないため、エラーが発生します.
以下は私自身の1つの実现で、足りないところ、また指正を望みます!!!
 
  
#include "stdafx.h"
#include
#include
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;
}