1. 程式人生 > >C/C++--strcpy函式實現

C/C++--strcpy函式實現

注:沒有考慮到記憶體重疊的情況

#include "stdafx.h"
#include <iostream>
#include <assert.h>

char* myStrCpy(char *pDst, const char *pSrc)
{
	assert(NULL != pDst);
	assert(NULL != pSrc);
	char *pDT = pDst;
	while ((*pDT++ = *pSrc++) != '\0');
	return pDst;
}

int _tmain(int argc, _TCHAR* argv[])
{
	char src[10] = "hellhelo";
	char dst[10];
	myStrCpy(dst, src);
	//myStrCpy(src + 1, src); error:記憶體重疊
	std::cout << dst;
	getchar();
	return 0;
}


相關推薦

C語言 不使用strcpy 函式實現字串複製功能

#include<stdio.h> void Copy_string(char* str1, char* str2);   //函式宣告 int main() {     char str1[20];     char str2[20];     puts("請輸入字串str1:");   

C/C++--strcpy函式實現

注:沒有考慮到記憶體重疊的情況 #include "stdafx.h" #include <iostream> #include <assert.h> char* myStrCpy(char *pDst, const char *pSrc) {

C語言 trim函式實現

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //去除尾部空格 char *rtrim(char *str) { if(str == N

c++字串查詢函式實現

int find(const char*str,const char*sub_str) { //這裡就沒有判斷指標是否是NULL了 //保留起始地址以計算位置 const char *temp_str = str; //預設返回結果 int ret = -

[C]C語言中函式實現返回引數二進位制中 1 的個數

通過C語言程式將十進位制數轉化成二進位制數,然後求出二進位制數中1的個數。 下面用三種方法來實現。來 方法一: 除2取餘法。對一十進位制數,用2輾轉相除至結果為1,將餘數和最後的1從下向上倒序寫就是對應的二進位制。 例如:十進位制數302轉化成二進位制。 302

C++string 基本函式實現

#include <iostream> #include <string> using namespace std; //初始化----------------------------------------------------- void test01() {

(C語言)用函式實現求三個數最大值

題目描述:從鍵盤輸入三個數,之後呼叫函式實現求三個數的最大值 程式碼實現: #include<stdio.h> int main() { int qmax(int a,int b,int c); //求最大值函式的宣告 int x,y,z; int max

C語言程式 函式實現求100~200間素數

函式實現求100~200間素數,及其數目 程式程式碼如下: #include <stdio.h> #include <math.h> int is_prime(int num)

C可變引數函式 實現

  C函式要在程式中用到以下這些巨集: void va_start( va_list arg_ptr, prev_param ); type va_arg( va_list arg_ptr, type ); void va_end( va_list arg_ptr )

[c語言] 呼叫函式實現求兩個數中的最大值

#include<stdio.h>int max(int x, int y){int max = 0;if (x < y){max = y;}else{max = x;}return

C用交換函式實現三個數排序

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void swap(int *m,int

C++ string split函式實現

使用了string的find函式和substr函式 #include <iostream> #include <string> #include <vector>

c語言strcpy函式的漏洞

    函式裡的區域性變數一般都是按序排放的,並且因為是分配在堆疊之中,它們的地址是向下“增長”,即向低地址方向增長。比如下面的程式: int flag=0x12345678; printf("%x\n",flag); char s[6]; pr

C語言 strcpy實現

return strlen i++ urn abc tdi void abcde abcd #include<stdio.h> #include<stdlib.h> void mystr(char *arr2, char *arr1,int leng

c++語言虛擬函式實現多型的原理

 自上一個帖子之間跳過了一篇總結性的帖子,之後再發,今天主要研究了c++語言當中虛擬函式對多型的實現,感嘆於c++設計者的精妙絕倫 c++中虛擬函式表的作用主要是實現了多型的機制。首先先解釋一下多型的概念,多型是c++的特點之一,關於多型,簡而言之就是 用父類的指標指向其子類的例項,然後通過父類的

strcat,strcmp,memcpy,strcpy函式實現

char *strcat(char *strDest, const char *strScr) //將源字串加const,表明其為輸入引數{        char * address = strDest; //該語句若放在assert之後,編譯出錯        assert((strDest != NUL

C語言實現strcpy函式

#include <stdio.h> #include <string.h> #define STR_LEN 30 char *myStrcpy(char *strDest, const char *strSrc){ if(strDest == NULL || s

C/C++——strcpy函式的 幾種 實現 和 詳細 解析

C/C++——strcpy函式的實現 和解析 題目:      已知strcpy函式的原型是:         &nb

[c語言]將strcpy()函式從低端到高階的實現

簡介   本文將實現庫函式strcpy,並將低端的寫法到高階的寫法進行演示講解。使自己寫的strcpy()函式不再那麼low!!! 正文   我們要實現strcpy()函式,就先要了解這個函式是幹什麼用的;strcpy()函式是用來拷貝字串的,在函式中有兩個形參

C語言:模擬實現字串函式strlen,strcpy,strcat,strcmp,strchr,strstr

什麼是C語言中的字串 字串或串(String)是由數字、字母、下劃線組成的一串字元。通常放在常量字串中或者字元陣列中。C語言中以 ‘\0’ 來作為字串的結束標記。 字元的ASCII編碼表 1.strlen 功能:字串求長 計算給定字串的(unsigned in