欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言三個函數(shù)的模擬實現(xiàn)詳解

 更新時間:2022年03月23日 09:50:55   作者:WangLongxyd  
這篇文章主要為大家詳細介紹了C語言三個函數(shù)的模擬實現(xiàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、strcpy

//模擬實現(xiàn)strcpy
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char*dest, char*str)
{
	assert(dest && str);
	char* tmp = dest;
	while (*str != '\0')
	{
		*dest = *str;
		dest++;
		str++;
	}
	*dest = '\0';
	return tmp;
}
int main()
{
	char arr1[20] = "xxxxxxxxxxxxxxx";
	char arr2[] = "study hard!";
	my_strcpy(arr1, arr2);
	printf("%s\n", arr1);
	return 0;
}

二、模擬實現(xiàn)strcat

思路:先找到目標字符串的\0位置,然后停下

用兩個指針掃描目標字符串和源字符串,并賦值

在源字符串添加完成后,加上’\0‘

//模擬實現(xiàn)strcat
//字符串追加
#include<stdio.h>
#include<assert.h>
char* my_strcat(char* dest, const char* str)
{
	assert(dest && str);
	char* tmp = dest;
	//找到目標的尾巴
	while (*dest != '\0')
	{
		dest++;
	}
	//鏈接字符串
	while (*dest++ = *str++)
	{
		;
	}
	*dest = '\0';
	return tmp;
}
int main()
{
	char arr1[20] = "hello";
	char arr2[] = " world!";
	my_strcat(arr1, arr2);
	printf("%s\n", arr1);
	return 0;
}

三、strcmp

要注意,strcmp不是比較兩字符串的長度,而是逐位比較字符的ASCII碼值

//模擬實現(xiàn)strcmp 返回的不是1 -1,而是正數(shù),負數(shù)
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
	assert(str1&&str2);
	while (*str1 == *str2)
	{
		if (*str1 == '\0')
		{
			return 0;
		}
		str1++;
		str2++;
	}
	return *str1 - *str2;
}
int main()
{
	char arr1[] = "abcdef";
	char arr2[] = "abcder";
	int ret=my_strcmp(arr1, arr2);
	if (ret < 0)
	{
		printf("<\n");
	}
	else if (ret == 0)
	{
		printf("=\n");
	}
	else
	{
		printf(">\n");
	}
	return 0;
}

總結:

多多實現(xiàn)庫函數(shù)的模擬可以更好地認識指針。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!     

相關文章

  • linux下C語言中的mkdir函數(shù)與rmdir函數(shù)

    linux下C語言中的mkdir函數(shù)與rmdir函數(shù)

    以下是對C語言中的mkdir函數(shù)與rmdir函數(shù)進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • Qt 使用 canon edsdk 實現(xiàn)實時預覽的示例代碼

    Qt 使用 canon edsdk 實現(xiàn)實時預覽的示例代碼

    這篇文章主要介紹了Qt 使用 canon edsdk 實現(xiàn)實時預覽的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 賭你會懵的C語言指針進階數(shù)組場景解析

    賭你會懵的C語言指針進階數(shù)組場景解析

    這篇文章主要為大家介紹了關于C語言指針進階的示例解析,來細化指針這一部分內容,現(xiàn)在著重把一些指針的運用情景搬出來康康,如果對指針盤的不是非常熟練,或者指針還出于入門階段的鐵子請繞道
    2022-02-02
  • C++索引越界的解決方法

    C++索引越界的解決方法

    本文主要介紹了C++索引越界的解決方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++ 自定義棧實現(xiàn)迷宮求解

    C++ 自定義棧實現(xiàn)迷宮求解

    這篇文章主要介紹了C++ 自定義棧實現(xiàn)迷宮求解的相關資料,需要的朋友可以參考下
    2017-07-07
  • 深入理解C++模板如何實現(xiàn)多態(tài)思想

    深入理解C++模板如何實現(xiàn)多態(tài)思想

    這篇文章主要為大家詳細介紹了C++模板如何實現(xiàn)多態(tài)的相關資料,文中的示例代碼講解詳細,對我們深入了解C++有一定的幫助,感興趣的可以了解一下
    2023-03-03
  • 一篇文章帶你入門C語言數(shù)據結構:緒論

    一篇文章帶你入門C語言數(shù)據結構:緒論

    這篇文章主要介紹了C語言的數(shù)據解構基礎,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • C語言實現(xiàn)任意進制轉換器

    C語言實現(xiàn)任意進制轉換器

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)任意進制轉換器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • do...while(0)的妙用詳細解析

    do...while(0)的妙用詳細解析

    do...while(0)消除goto語句;通常,如果在一個函數(shù)中開始要分配一些資源,然后在中途執(zhí)行過程中如果遇到錯誤則退出函數(shù),當然,退出前先釋放資源
    2013-09-09
  • C++?Qt利用GPU加速計算的示例詳解

    C++?Qt利用GPU加速計算的示例詳解

    這篇文章主要為大家詳細介紹了在?C++?和?Qt?中如何利用GPU加速計算,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-03-03

最新評論