strlen,strcpy,strcat,strcmp四个函数的原型,memcpy,memset的实现
来源:互联网 发布:日本拉面的做法知乎 编辑:程序博客网 时间:2024/05/17 15:04
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int strcmp(char *str1,char *str2)
{
assert(str1!=0 && str2!=0);
while(*str1 && *str2 && *str1==*str2)
{
str1++;
str2++;
}
return *str1-*str2;
}
int strlen(char *str)
{
int len=0;
while(*str != '\0')
{
str++;
len++;
}
return len;
}
char *strcpy(char *new_str,char *old_str)
{
char *temp=new_str;
assert(old_str != NULL && new_str !=NULL);
while(*old_str != '\0')
{
*temp=*old_str;
old_str++;
temp++;
}
*temp='\0';
return new_str;
}
-------------------------------------------------------------------------------------------
一种更简单的描述
char *strcpy(char *new_str,char *old_str)
{
assert((new_str != NULL) && (old_str !=NULL));
char *temp=new_str;
while((*temp++ = *old_str++) != NULL)
continue;
return new_str;
}
----------------------------------------------------------------------------------------
char *strcat(char *str1,char *str2)
{
assert(str1 !=NULL && str2 != NULL);
char *temp=str1;
while(*temp != 0)
{
temp++;
}
while(*str2 != 0)
{
*temp++=*str2++;
}
*temp='\0';
return str1;
}
void main()
{
int res,str_length;
char string1[]="abcd";
char string2[]="abc";
char *new_str=(char *)malloc(sizeof(char));
new_str=strcpy(new_str,string1);
res=strcmp(string1,string2);
str_length=strlen(string1);
printf("%d\n",res);
printf("%d\n",str_length);
printf("%s\n",new_str);
printf("%s\n",strcat(string1,string2));
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void *memcpy(void *dest,const void *src,int n)从源src所指的内存地址的起始位置拷贝N个字节到dest所指内存地址的起始位置
void main()
{
char *s="hello,world!";
char str[20];
memcpy(str,s,5);
str[5]='\0';
printf("%s\n",str);
}
void *memset(void *s, int ch, size_t n); 函数解释:将s中前n个字节替换为ch并返回s;
void main()
{
char str[5];
memset(str,'1',5);
for(int i=0;i<5;i++)
{
printf("%c\n",str[i]);
}
}
注意这里是'1',而不是1,如果是1就有问题,memset函数是以字节为单位来赋值的。
- strlen,strcpy,strcat,strcmp四个函数的原型,memcpy,memset的实现
- memcmp,memcpy,memmove,memset,strcat,strcmp,strcpy,strlen 8个函数的实现
- 字符串函数的原型实现(strcpy, strcat, strcmp, memset, memcpy, memmove)
- strlen, strcpy, strcat, strcmp, memset... (字符串操作函数的实现)
- strcat,strcpy,strcmp,strlen,memcpy函数原型
- strlen,strcpy,strcat,strcmp函数的实现
- Strcat,strcpy,strcmp,Strlen函数原型-实现
- atoi itoa strcpy strcmp strlen strcat memcpy memset实现
- strcpy memcpy strcat strcmp memset strlen
- strcpy,strcmp,strcat,memcpy,memmov,memset,memcmp的实现
- strcpy,strcmp,strcat,memcpy,memmov,memset,memcmp的实现
- strlen,strcpy,strcat,strcmp,strstr,memcpy,的模拟实现方式
- strcpy strlen memcpy strcat strcmp strstr strrev函数的实现代码
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- C语言中strlen、strcpy、strncpy、strcat、strnact、strcmp、memcpy函数的实现
- C语言中字符串相关函数的实现(strcat strlen strcmp strcpy memcpy)
- strlen,strcpy,strncpy,strcmp,strcat,strstr的用法,函数原型及函数的实现
- SVM入门(八)松弛变量
- SVM入门(九)松弛变量(续)
- Eclipse设置、调优、使用
- BCB设计时组件编译错误
- [C/C++]: C++ Static Property
- strlen,strcpy,strcat,strcmp四个函数的原型,memcpy,memset的实现
- SVM入门(十)将SVM用于多类分类
- C#中控件的Click事件与MouseClick事件有什么区别?
- Linux--字符串转16进制
- 转HTML5 web storage
- window xp PHP5.2.17 apache2.2 mysql eclipse 数据库连接(mysql,oracle10)
- Tex Quotes(P1488)
- 文本分类入门-特征选择方法之信息增益
- 详解什么是数据驱动编程