码迷,mamicode.com
首页 > 其他好文 > 详细

实现mystrcpy(), mystrcmp(), mystrcat(), mystrlen()

时间:2016-01-07 07:46:05      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

/*
	mystrcpy:
	复制字符串from 中的字符到字符串to,
	包括空值结束符。
*/

/*
	mystrcmp:
	比较字符串str1 and str2
	返回值			解释
	less than 0		str1 is less than str2

	equal to 0		str1 is equal to str2

	greater than 0	str1 is greater than str2
*/

/*
	mystrcat:
	函数将字符串str2 连接到str1的末端
*/

/*
	mystrlen:
	函数返回字符串str 的长度( 即空值结束符之前字符数目)。
*/

void mystrcpy(char *to, const char *from);
int mystrcmp(const char *str1, const char *str2);
void mystrcat(char *str1, const char *str2);
size_t mystrlen(char *str);

int main(){
	char str1[20] = "abcdfg";
	char str2[] = "abcde";
	//mystrcat(str1,str2);
	//mystrcpy(str1,str2);
	printf("%d\n",mystrlen(str1));
	system("pause");
	return 0;
}

void mystrcpy(char *to, const char *from){
	assert((to != NULL) && (from != NULL));
	while ((*to++ = *from++) != ‘\0‘);
	*to = ‘\0‘;
}

int mystrcmp(const char *str1, const char *str2){
	assert((str1 != NULL) && (str2 != NULL));
	for (; (*str1) && (*str2) && (*str1 == *str2);++ str1,++ str2);
	return (*str1 - *str2);
}

void mystrcat(char *str1, const char *str2){
	assert((str1!=NULL) && (str2!=NULL));
	char* ret = str1;
	for (; *str1 != ‘\0‘; ++str1);
	while ((*str1++ = *str2++) != ‘\0‘);
}

size_t mystrlen(char *str){
	assert(str != NULL);
	size_t length = 0;
	for (; *str++ != ‘\0‘;length ++);
	return length;
}

  

实现mystrcpy(), mystrcmp(), mystrcat(), mystrlen()

标签:

原文地址:http://www.cnblogs.com/mutaohengheng/p/5108026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!