PTA:编程实现字符串连接函数MyStrNcat (C语言)

题干

本题要求实现一个函数,即字符串“n”族连接函数StrNcat,将两个字符串连接起来。

函数接口定义: char *MyStrNcat( char *dst, char *src, int n );

此函数把字符串src中的前n个字符连接到到dst后面,并以’\0’终止该串,原dst后面的’\0’被src的第一个字符覆盖。函数返回指向dst的指针。

裁判测试程序样例:

#include 
#include 
#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;  
}  

你可能感兴趣的:(c语言,算法)