列表

详情


CC2. 复制部分字符串

描述

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

输入描述

键盘输入一个长度为len(1 <= len < 30)的字符串,再输入一个正整数 m(1 <= m <= len)

输出描述

输出复制的新字符串

示例1

输入:

helloworld
6

输出:

world

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 2ms, 内存消耗: 384KB, 提交时间: 2021-12-19

#include <iostream>
using namespace std;

int main() {

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

    int m;
    cin >> m;

    // write your code here......
     char s[30] = {0};
    int len=0;
    while(str[m-1]!='\0'){
        s[len++]=str[m-1];
        m++;
    }
    s[len]='\0';
    cout<<s<<endl;

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 388KB, 提交时间: 2021-12-05

#include <iostream>
using namespace std;

int main() {

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

    int m;
    cin >> m;

    // write your code here......
    char *p=str+m-1;
    while(*p!=0)
    {
        cout<<*p;
        p++;
    }

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-12-10

#include <iostream>
using namespace std;

int main() {

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

    int m;
    cin >> m;

    // write your code here......
    char s[30] = {0};
    char *q=str;
    char *p=s;
    for(int i=0;i<m-1;i++){
        q++;
    }
    while((*q)!='\0'){
        *p = *q;
        p++;
        q++;
    }
    *p = '\0';
    cout<<s<<endl;
    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-11-30

#include <iostream>
using namespace std;

int main() {

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

    int m;
    cin >> m;

    // write your code here......
    char* p = str+(m-1);
    while(*p!='\0')
    {
        cout << *p ;
        p++;
    }

    return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-11-22

#include <iostream>
using namespace std;

int main() {

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

    int m;
    cin >> m;

    // write your code here......
    int i = 0;
    char res[30] = {0};
    char *c = &str[m - 1];
    while (*c != '\0') {
        res[i++] = *c;
        ++c;
    }
    printf("%s", res);

    return 0;
}

上一题