您的位置:首页 > 其它

实现1.strcpy 2.实现strcat 3.实现strstr 4.实现strchr 5.实现strcmp 6.实现memcpy

2018-03-22 12:08 477 查看
模拟实现strcpy (字符串拷贝)(后者拷贝到前者)
#include <stdio.h>
#include <string.h>
#include <assert.h>
char *my_strcpy (char *str_des , const char *str_source)
{
char *ret = str_des;
assert(str_des);
assert(str_source);
while(*str_des++ = *str_source++)
{
;
}
return  ret;
}
int main()
{
char str[]="abcdef158";
char arr[20];
my_strcpy(arr,str);
printf("%s\n",arr);
return 0;
}
12345678910111213141516171819202122 2。 模拟实现strcat (字符串拼接)(后者衔接在前者后边)
#include <stdio.h>
#include <string.h>
#include <assert.h>
char *my_strcat (char *dest ,const char *src)
{
char *ret = dest;
assert(dest);
assert(src);
while(*dest)
{
dest++;
}
while(*dest++ = *src++)
{
;
}
return  ret;
}
int main()
{
char str[]="abcdef158";
char arr[20]="9981";
my_strcat(arr,str);
printf("%s\n",arr);
return 0;
}
1234567891011121314151617181920212223242526 3。 模拟实现strcmp (字符串比较) (相等返回0 前者大于后者返回正数 后者大与前者返回负数)
#include <stdio.h>
#include <string.h>

int my_strcmp (char *dest ,char *src)
{
int ret;
while(!(ret = *(unsigned char *)dest -*(unsigned char *)src))
{
dest++;
src++;
}
if(ret > 0)
{
return 1;
}else if(ret < 0)
{
return -1;
}else
{
return 0;
}
}
int main()
{
int x;
int y;
char str[]=" ";
char arr[]="abc";
x = my_strcmp(str,arr);
y = strcmp(str,arr);
printf("my_strcmp = %d\n",x);
printf("strcmp = %d\n",y);
return 0;
}
123456789101112131415161718192021222324252627282930313233344。 模拟实现strstr (字符串查找)(找到后输出 没找到返回NULL)
#include <stdio.h>
#include <string.h>
#include <assert.h>

char *my_strstr (const char *src ,const char *dest)
{
const char *str1 = src;
const char *str2 = dest;
char *ret = NULL;
assert(dest);
assert(src);
if(*dest=='\0')
return NULL;
while(*str1)
{
ret = str1;
while(*str2)
{
if(*str1 && *str2 && (*str1 == *str2))
{
str1++;
str2++;
}
else
{
break;
}

}
if(*str2 == '\0')
{
return ret;
}
str1++;
}
return NULL;
}
int main()
{
char str[]="1234abc886";
char arr[]="abc";
char *ps = NULL;
char *pp = NULL;
ps = my_strstr(str,arr);
pp = strstr(str,arr);
printf("%s\n",pp);
if(ps)
{
printf("find:%s\n",ps);
}
else
{
printf("no find\n");
}
return 0;
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐