C语言 连接字符串

头文件原型说明返回值
#include<stdio.h>char *strcat(char *s1, const char *s2)将s2指向的字符串连接到s1指向的数组末尾。若s1和s2指向的内存空间重叠,则作未定义处理。返回s1的值。
#include <stdio.h>
#include <string.h>

int main(void){
	char str[] = "vv";
	char *p = "cat";
	
	printf("连接后的字符串为:%s", strcat(str, p));
	
	return 0;
}

运行结果:
在这里插入图片描述

strcat函数实现:

char *strcat(char *s1, const char *s2){
	char *tmp = s1;
	
	while(*s1){
		s1++;
	}
	
	while(*s1++ = *s2++){
		
	};
	
	return tmp;
}

strncat函数控制连接字符串的个数
头文件原型说明返回值
#include<stdio.h>char *strncat(char *s1, const char *s2, size_t n)将s2指向的字符串连接到s1指向的数组末尾。若s2的长度大于n则截断超出部分。若s1和s2指向的内存空间重叠,则作未定义处理。返回s1的值。
#include <stdio.h>
#include <string.h>

int main(void){
	char str[] = "vv";
	char *p = "cat";
	
	printf("连接后的字符串为:%s", strncat(str, p, 3));
	
	return 0;
}

运行结果:
在这里插入图片描述

strncat函数实现:

char *strncat(char *s1, const char *s2, size_t n){
	char *tmp = s1;
	
	while (*s1){
		s1++;
	}
	
	while (n--){
		if (!(*s1++ = *s2++)){
			break;
		}
	}
	
	*s1 = '\0';
	
	return tmp;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值