题解 | #复制部分字符串#

复制部分字符串

https://www.nowcoder.com/practice/8f5b923683b94e549880e3c8370e3e55

题目要求信息

键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len),将此字符串中从第 m 个字符开始的剩余全部字符复制成为另一个字符串,并将这个新字符串输出。要求用指针处理字符串。

具体做法

根据题目的要求来操作,我们需要我们需要使用指针处理字符串,为了复制字符串,我们需要新建一个数组,并用新指针指向这个新数组来操作复制字符串,复制字符串我们就用while循环来遍历字符串进行复制,为了避免用户输入的数字超出数组长度,我们用了一个判断语句来避免这个问题,如果超出的话我们把m等于数组的长度来输出。

这里用了c++标准函数库里的一个函数strlen,用来计算数组的长度。

具体操作代码如下

#include <iostream>
#include <cstring>
using namespace std;

int main() {

    char str[30] = { 0 };
    cin.getline(str, sizeof(str));

    int m;
    cin >> m;
    if (m > strlen(str))
    {
        m = strlen(str);
    }
    // write your code here......
    char* p = str + m - 1;
    char a[30];
    char* q = a;
    while (*p != '\0')
    {
        *q = *p;
        p++;
        q++;
    }
    *q = '\0';
    cout << a;

    return 0;
}

#c++#
c++知识分享 文章被收录于专栏

本专栏为C++的一些知识见得。

全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务