strcpy函數的實現

最近面試到一些基本的問題這裏做個基本的測試,還真發現了小問題

面試問題是:不適用庫函數實現strcpy(char* dst,char* src);


char * str = "abdda1234123";
	char * str2;
	
	int i = 0;
	i = strlen(str);
	str2 = new char[i + 1];
	char *tmp = str2;
	//strcpy(str2, str);

	while (*tmp++ = *str++)
		;	
	tmp[i + 1] = '\0';
	printf("str2's result:%s", str2);

	return 0;

我假設一開始的str2是一個空指針,所以需要先申請,然後發現如果我在while循環中直接用str2,賦值將會失敗。。原因如果有哪位博友告知,感激不盡.....
如果賦值給一個臨時指針tmp,執行正確;

發佈了30 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章