strcpy,strncpy, strlen, strcmp strcat函数实现

#include <stdio.h>
#include <assert.h>
char* strcpy(char* strDest, const char* strSrc)
{
	assert((strDest != NULL) && (strSrc != NULL));

	char* address = strDest;

	while((*strDest++ = *strSrc++) != '\0')
		NULL;

	return address;
}

char* strncpy(char* strDest, const char* strSrc, int n)
{
	assert((strDest != NULL) && (strSrc != NULL));

	char* address = strDest;

	while(n-- > 0)
	{
		*strDest++ = *strSrc++;
	}

	return address;
}

int strlen(const char* str)
{
	assert(str != NULL);

	int strlen = 0;

	while((*str++) != "\0")
		strlen++;

	return strlen;
}

int strcmp(const char* str1, const char str2)
{
	assert((str1 != NULL) && (str2 != NULL));

	while(*str1 && *str2 && (*str1 == *str2))
	{
		str1++;
		str2++;
	}

	return (*str1 - *str2)
}

char* strcat(char* strDest, const char* strSrc, int n)
{
	assert((strDest != NULL) && (strSrc != NULL));
	char* address = strDest;

	//不能用*strSest++,否则循环结束好,strDest将指向'\0'的下一个位置
	while(*strDest)
	{
		strDest++
	}

	while(*strDest++ = *strSrc++)
		NULL;

	return address;
}

strcpy,strncpy, strlen, strcmp strcat函数实现

时间: 2024-07-29 10:06:16

strcpy,strncpy, strlen, strcmp strcat函数实现的相关文章

c语言实现完美strcpy,strlen,strcmp,strcat

相信不少人面试的时候,会遇到面试官让你写出strcmp, strlen, strcpy,strcat等函数,下面给出比较完美的实现,自行把握里面一些关键的点,例如参数的判断,const参数,指针操作等等. //strcpy函数: char *strcpy(char *strDest, const char *strSrc) { if (strDest == NULL || strSrc == NULL) return NULL; if (strDest == strSrc) return str

教教大家一些strcpy,strcmp,strcat,strlen函数的写法

VC源码: strcmp函数的写法: #include<stdio.h> #include<string.h> int strcmp1(char* a, char* b) { for(;*a==*b;a++,b++) if(*a!='\0') return 0; return *a - *b; } main() {  int l; char a[10]={"db"}; char b[10]={"cb"}; l=strcmp1(a,b); pr

C语言中strcpy,strcmp,strlen,strcat函数原型

//strcat(dest,src)把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' char *strcat(char * strDest, const char *strSrc) { char *res=strDest; assert((strDest!=NULL)&&(strSrc!=NULL)); while(*strDest)strDest++; while(*strDest=*strSrc) { strDest++; strSrc++; }

C 实现strcmp,strcpy,strcat函数

基于C语言的strcmp,strcpy,strcat函数的实现.C语言是一个程序员的基础,一定要重视. char* strcat ( char * dst , const char * src ) { char * cp = dst; while( *cp ) cp++; /* find end of dst */ while( *cp++ = *src++ ) ; /* Copy src to end of dst *///一直到赋完'\0' return( dst ); /* return

C语言中模拟实现strcpy,strstr,strcat函数

在C中,要模拟实现这几个库函数,是对指针的传参与函数的调用的考察,代码如下,仅供参考 strcpy函数: #include <assert.h> char* my_strcpy(char* dest, const char* src) { assert(dest);//断言指针的有效性 assert(src); char*pa = dest; while (*dest++ = *src++) ; return pa; } strstr函数: int my_strstr(const char*s

字符串处理strcpy strcat函数的用法

C语言函数字符串处理strcpy strcat函数的用法: 1)strcat是用来连接两个字符串的,原型是char *strcat(char *dest,char *src),作用是把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0' 2) strcpy是用来把字符串拷贝到指定的地方的,原型是char *strcpy(char *dest,const char *src),作用是把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间注意str

由strcat函数引发的C语言中数组和指针问题的思考

问题一 首先,来看一下下面这段代码: #include <stdio.h> #include <string.h> int main() { char *str = "media"; char *tmp = "aaa"; printf("str: %s\n",str); strcat(str,tmp); printf("str: %s\n",str); return 0; } 代码打眼儿一看,功能很明显

strcat函数造成的段错误(Segmentation fault)

转自:http://book.51cto.com/art/201311/419441.htm 3.21  strcat函数造成的段错误 代码示例 int main() { char dest[7]="12345"; char* src = "abcdefghigklmnopqrstuvwxyz"; strcat(dest, src); cout << "dest:" << dest << endl; retur

strcat函数的坑点

我们先看下面这样一段代码: 1 #include <iostream> 2 #include <stdlib.h> 3 using namespace std; 4 5 int main() 6 { 7 char *p1= "123"; 8 char *p2= "ABC"; 9 char str[50]= "xyz"; 10 strcat(p1,p2); 11 strcpy(str+2,p1); 12 cout<&l