模拟实现 strncpy strncat strncmp strchr strrchr 函数
2017-07-18 15:56
246 查看
1、模拟实现strncpy函数
从第一个字符开始把src复制到dest里面去,如果src的长度大于n,则只复制前n个字符,如果src的长度小于n,则把src复制完后其余的全服复制成'\0'
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncpy(char* dest, const char* src, int n)
{
int i;
int count = n;
for (i = 0; i < n; i++)
*dest++ = *src++;
}
int main()
{
char arr[20] = { 34 };
my_strncpy(arr, "hello world!", 7);//指定复制n个字符
printf("%s ", arr);
system("pause");
return 0;
}
2、模拟实现strncat函数
追加复制,把src的内容复制到dest的'\0'处,复制n个字符,若n<src,则只复制前n个字符,若n>src,则其余部分为全零
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncat(char*dest,const char* src,int n)
{
while (*dest++)
{
;
}
*dest--;
int i;
for (i = 0; i < n; i++)
{
*dest++ = *src++;
}
}
int main()
{
char arr[30] = { "hello " };
my_strncat(arr, "world!", 7);
printf("%s", arr);
system("pause");
return 0;
}
3、模拟实现strncmp函数
从第一个字符开始进行字符串比较,如果str是dest的子字符串则返回0,如果第一个str小于dest则返回-1,反之则返回1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
int my_strncmp(char*src, char*dest, int n)
{
while (*dest)
{
if ((*src - *dest) == 0)
{
src++;
dest++;
}
else if ((*src - *dest) > 0)
{
return 1;
}
else
return -1;
}
return 0;
}
int main()
{
int ret = my_strncmp("fbcdef", "aabcdef",5);
printf("%d ", ret);
system("pause");
return 0;
}4、模拟实现strchr函数
寻找字符第一次出现的位置并打印剩下的字符串
5、模拟实现strrchr函数
找出字符最后一次出现的位置并打印剩下的字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
char* my_strrchr(char*dest, char src)
{
int count = 0;
while (*dest++)
{
count++;
}
dest--;
while (count--)
{
if (*dest == src)
{
return dest;
}
else
dest--;
}
return NULL;
}
int main()
{
printf("%s ",my_strrchr("abecdef", 'e'));
system("pause");
return 0;
}
从第一个字符开始把src复制到dest里面去,如果src的长度大于n,则只复制前n个字符,如果src的长度小于n,则把src复制完后其余的全服复制成'\0'
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncpy(char* dest, const char* src, int n)
{
int i;
int count = n;
for (i = 0; i < n; i++)
*dest++ = *src++;
}
int main()
{
char arr[20] = { 34 };
my_strncpy(arr, "hello world!", 7);//指定复制n个字符
printf("%s ", arr);
system("pause");
return 0;
}
2、模拟实现strncat函数
追加复制,把src的内容复制到dest的'\0'处,复制n个字符,若n<src,则只复制前n个字符,若n>src,则其余部分为全零
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
void my_strncat(char*dest,const char* src,int n)
{
while (*dest++)
{
;
}
*dest--;
int i;
for (i = 0; i < n; i++)
{
*dest++ = *src++;
}
}
int main()
{
char arr[30] = { "hello " };
my_strncat(arr, "world!", 7);
printf("%s", arr);
system("pause");
return 0;
}
3、模拟实现strncmp函数
从第一个字符开始进行字符串比较,如果str是dest的子字符串则返回0,如果第一个str小于dest则返回-1,反之则返回1
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
int my_strncmp(char*src, char*dest, int n)
{
while (*dest)
{
if ((*src - *dest) == 0)
{
src++;
dest++;
}
else if ((*src - *dest) > 0)
{
return 1;
}
else
return -1;
}
return 0;
}
int main()
{
int ret = my_strncmp("fbcdef", "aabcdef",5);
printf("%d ", ret);
system("pause");
return 0;
}4、模拟实现strchr函数
寻找字符第一次出现的位置并打印剩下的字符串
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<string.h> char* my_strchr(char*dest, char src) { while (*dest) { if (*dest == src) { return dest; } else dest++; } return NULL; } int main() { printf("%s ",my_strchr("abcdef", 'g')); system("pause"); return 0; }
5、模拟实现strrchr函数
找出字符最后一次出现的位置并打印剩下的字符串
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<iostream>
#include<string.h>
char* my_strrchr(char*dest, char src)
{
int count = 0;
while (*dest++)
{
count++;
}
dest--;
while (count--)
{
if (*dest == src)
{
return dest;
}
else
dest--;
}
return NULL;
}
int main()
{
printf("%s ",my_strrchr("abecdef", 'e'));
system("pause");
return 0;
}
相关文章推荐
- 介绍如何通过代码实现模拟按键的函数
- C语言模拟实现memset.memcmp函数
- strlen函数详解及模拟实现
- 回调函数,回调函数应用,qsort函数用法,以及模拟实现qsort函数
- 集合的模拟实现(函数模板)
- 字符串函数模拟实现之strlen函数的三种常见实现方法
- 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数--在实际中的应用
- 【面试题】C语言:模拟实现内存放置函数memset()
- jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
- str库函数模拟实现
- 模拟实现printf函数,可完成下面的功能 能完成下面函数的调用。 print("s ccc d.\n","hello",'b','i','t',100); 函数原型: print(char *
- 题目:模拟实现atoi(字符串转换为整数)函数,比如“12345”转换后就是12345。
- strcpy 和strlen函数的模拟实现
- C语言:模拟实现字符串中查找一个字符串my_strstr()函数
- 使用" 参数化基类" 和" 成员函数指针" 模拟实现虚函数--在实际中的应用
- 【C语言】模拟实现strcpy()、strncpy()函数
- 一些关于memcpy memmove函数的区别,和模拟实现
- PHP fsockopen介绍及fsockopen封装函数实现模拟GET或POST请求
- 模拟实现内存操作函数memcpy、memmove
- 字符操作函数的模拟实现