您的位置:首页 > 编程语言 > C语言/C++

C语言模拟实现strcpy、strlen、strcmp、strcat

2016-11-21 20:44 423 查看
【一】strcpy

作用:将一个字符串的全部元素包括字符串的终结符复制过去

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
#include<assert.h>
#include<string.h>

char * my_strcpy(char *dest, const char * src)
{
char * ret = dest;   //存放arr1地址
assert(dest);
assert(src);       //如果str1或者str2为零程序在这里就会提示错误
while (*dest++ = *src++)
{
;
}
return ret;
}
int main()
{
char str1[20] = { 0 };
char str2[] = "abcdef";
printf("string=%s", my_strcpy(str1, str2));
system("pause");
return 0;
}


【二】strlen

作用:输出一个字符串的长度

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
#include<assert.h>
#include<string.h>
int my_strlen(const char * str)
{
int count = 0;
assert(str);
while (*str)
{
count++;
*str++;
}
return count;
}
int main()
{
char arr[]={"abcdef" };
printf("count=%d", my_strlen(arr));
system("pause");
return 0;
}


【三】strcmp

strcmp(str1,str2)用来比较两个字符串;

//如果str1<str2输出一个负数;
//如果str1>str2输出一个正数;
//如果str1 = str2输出0。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
#include<assert.h>
#include<string.h>
char * my_strcmp(char *dest, const char *src)
{
char * ret = dest;
assert(dest);
assert(src);
while (*dest++ == *src++)
{
if (*dest == 0)
return 0;
}
if ((*dest - *src) > 0)
return 1;
else
return -1;
}
int main()
{
char str1[10] = "abc";
char str2[10] = "csdrt";
printf("%d\n", my_strcmp(str1, str2));
printf("%d\n", my_strcmp(str1, str1));
printf("%d\n", my_strcmp(str2, str1));
system("pause");
return 0;
}


【四】strcat

作用:将两个字符串连接在一起

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
#include<assert.h>
#include<string.h>
char * my_stract(char *dest, const char *src)
{
char * ret = dest;
assert(dest);
assert(src);
while ((*dest) != 0)
{
*dest++;
}
while (*src)
{
*dest++ = *src++;
}
return ret;
}
int main()
{
char str1[20] = "hellow ";
char str2[] = "worad";
printf("string=%s", my_stract(str1, str2));
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言
相关文章推荐