C语言刷题系列——10.指针 – 使用函数实现字符串部分复制

🚩字符串部分复制

💻一) 题目要求

要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。

函数接口定义:
void strmcpy( char *t, int m, char *s );

函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。

裁判测试程序样例:
#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */

int main()
{
    char t[MAXN], s[MAXN];
    int m;
    
    scanf("%dn", &m);
    ReadString(t);
    strmcpy( t, m, s );
    printf("%sn", s);

    return 0;
}

/* 你的代码将被嵌在这里 */

💻二) 题解

从第m个字符开始:指向t中第m个元素,第m个元素即*(t+m-1)
循环执行 s = t ; s++; t++; 直到t中遇到 ‘’ ,循环结束
⭐注意:最后一次循环,t++以后
t = ‘’,s++以后没有执行任何操作,此时s指向的位置是空的
最后在循环外
s = ‘’,(给这个空的位置填上结束标志’ ')

void strmcpy( char *t, int m, char *s )
{
    t = t+m-1;
    while(*t!='')
    {
        *s = *t;
        s++;
        t++;
    }
*s = '';
}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>