模拟实现atoi strncat strncpy(注释)

Posted 只yao为你发光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模拟实现atoi strncat strncpy(注释)相关的知识,希望对你有一定的参考价值。

模拟实现atoi

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<ctype.h>
//模拟实现atoi
int My_Atoi(const char * str)

	assert(str);//断言str不是空指针
	int flag = 1;//为字符串的正负做标志
	int ret = 0;//返回的数
	if (*str == '\\0')//判断字符串是否为空
	
		return 0;
	
	while (isspace(*str))//判断不为空的字符串前面是否有空格
	
		str++;
		if (*str == '\\0')//判断字符串是否只有空格
		
			return 0;
		
	
	if (*str == '+')//判断字符串正负
	
		str++;
	
	if (*str == '-')//判断字符串正负
	
		str++;
		flag = -1;//字符串为负,flag为-1
	
	while (isdigit(*str))//判断是否为数字
	
		ret = ret * 10 + (*str - '0')*flag;	
		str++;
	
	return ret;//返回结果

int main()

	char str[] = "-123a45";
	printf("%d\\n", My_Atoi(str));
	return 0;

模拟实现strncat

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
//模拟实现strncat
char *My_Strncat(void * dest, const void *src, int num)

    //断言不是空指针
	assert(dest);
	assert(src);
	//定义返回地址
	char * ret = dest;
	//找到目的地字符串的最后一个字符
	while (*(char *)dest != '\\0')
	
		((char *)dest)++;
	
	//在字符串后加字符
	while (num)
	
		*(char *)dest = *(char *)src;
		((char *)dest)++;
		((char *)src)++;
		num--;
	
	//给字符串最后一位加上'\\0'
	*(char *)dest = '\\0';
	return ret;



int main()

	char str1[50] = "abcd";
	char str2[] = "efgh";
	My_Strncat(str1, str2, 3);
	printf("%s\\n", str1);
	return 0;

模拟实现strncpy

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
//模拟实现strncpy
char * My_Strncpy(void* dest, const void *src, int num)

    //断言不是空指针
	assert(dest);
	assert(src);
	//定义返回值指针
	char *ret = dest;
	//覆盖字符串dest的字符
	while (num)
	
		*(char *)dest = *(char *)src;
		((char *)dest)++;
		((char *)src)++;
		num--;
	
	//给末尾加字符串判断'\\0'
	*(char *)dest = '\\0';
	return ret;


int main()

	char str1[50] = "abcd";
	char str2[] = "efgh";
	My_Strncpy(str1, str2, 3);
	printf("%s\\n", str1);
	return 0;

以上是关于模拟实现atoi strncat strncpy(注释)的主要内容,如果未能解决你的问题,请参考以下文章

模拟实现strncpy,strncat,strncmp

字符串函数的介绍与模拟实现

C语言进阶字符函数和字符串函数

strcmp,strcpy,strcat,strncmp,strncpy,strncat,自实现精炼版本

c strncpy strncat函数 demo

常用的字符串函数详解