题干
本题要求实现一个函数,即字符串“n”族连接函数StrNcat,将两个字符串连接起来。
函数接口定义: char *MyStrNcat( char *dst, char *src, int n );
此函数把字符串src中的前n个字符连接到到dst后面,并以’\0’终止该串,原dst后面的’\0’被src的第一个字符覆盖。函数返回指向dst的指针。
裁判测试程序样例:
#include <stdio.h>
#include <string.h>
#define MAXS 10
char *MyStrNcat( char *dst, char *src, int n );int main()
{char *p;char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'};gets(str1);//输入目的字符串gets(str2);//输入源字符串int n;scanf("%d",&n);//输入连接长度char * new_dst;//函数调用返回目的字符串指针new_dst = MyStrNcat(str1, str2, n);printf("%s\n", new_dst); return 0;
}/* 你的代码将被嵌在这里 */
样例
输入样例:
abc
def
2
输出样例:
abcde
解题过程及思路
char *MyStrNcat(char *dst, char *src, int n) { char *p = dst + strlen(dst); // 将指针p指向dst字符串的末尾 while (n-- > 0 && *src != '\0') { // 拷贝src字符串的前n个字符到dst字符串中 *p++ = *src++; } *p = '\0'; // 在新的dst字符串末尾添加结束符'\0' return dst;
}