2018-2-21 test22

本文介绍了三个自定义的C语言函数:my_strncpy用于复制指定长度的字符串,my_strncat用于连接两个字符串,并限定连接长度,my_strncmp则用于比较两个字符串的前n个字符是否相同。这些函数为理解C语言中字符串操作提供了实用的例子。

模拟strncpy

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

void my_strncpy(char *arr, char *ch, int size)
{
    assert(arr);
    assert(ch);
	while (size--)
	{
		*arr = *ch;
		arr++;
		ch++;
	}
}
int main()
{
	char arr[10] = { 0 };
	char *ch = "helloworld";
	my_strncpy(arr, ch, 6);
	return 0;
}

模拟strncat

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

void my_strncat(char *p, char *q, int size)
{
    assert(p);
    assert(q);
	while (*p)
	{
		p++;
	}
	while (size--)
	{
		*p = *q;
		p++;
		q++;
	}
}
int main()
{
	char p[20] = "hello";
	char *q = "world1234";
	my_strncat(p, q, 5);
	return 0;
}

模拟strncmp

#include<stdio.h>  
#include<stdlib.h>  
#include<assert.h>  
  
int my_strncmp(char* dest, const char* src,size_t count)  
{  
    assert(dest);  
    assert(src);  
    while (count)  
    {  
        if (*dest == *src)  
        {  
            dest++;  
            src++;  
        }  
        else  
        {  
            return *dest - *src - '\0';  
        }  
        count--;  
    }  
    return 1;  
}  
  
  
  
int main()  
{  
    char arr1[20] = "yello";  
    char arr2[] = "world!";  
    int ret = my_strncmp(arr1, arr2,2);  
    if (ret == 1)  
    {  
        printf("Match Success!\n");  
    }  
    else  
    {  
        printf("Match Failure!\n");  
        printf("%d", ret);  
    }  
    system("pause");  
    return 0;  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值