指针
详见:
 https://www.nowcoder.com/practice/8f5b923683b94e549880e3c8370e3e55?tpId=225&tags=&title=&difficulty=0&judgeStatus=0&rp=0
#include <iostream>
using namespace std;
int main() {
    char str[30] = { 0 }; // 开辟一块最大长度为30的字符串空间。
    cin.getline(str, sizeof(str));
    int m;
    cin >> m;
    // write your code here......
    char copyStr[30] = { 0 };
    char* strPtr = str + m - 1; // 令指针指向字符数组的第m个元素
    char* copyStrPtr = copyStr; // 将变量名赋给指针,则指针指向字符数组变量的第1个元素
    while (*strPtr != NULL) { // 或 (*strPtr != '\0')
        *copyStrPtr = *strPtr; //复制 
        //两指针都后移
        strPtr++; 
        copyStrPtr++;
    }
    cout << copyStr << endl;
    return 0;
}
用string
#include <iostream>
using namespace std;
int main() {
    char str[30] = { 0 }; // 开辟一块最大长度为30的字符串空间。
    cin.getline(str, sizeof(str));
    int m;
    cin >> m;
    // write your code here......
    char* p = str; // cout << *p << endl;  输出的是 h。
    string s = p + m -1; // 直接利用string得到第m个元素后的剩余全部字符
    cout << s << endl;
    return 0;
}
用&
这个方法…不算懂。。。
#include <iostream>
using namespace std;
int main() {
    char str[30] = { 0 }; // 开辟一块最大长度为30的字符串空间。
    cin.getline(str, sizeof(str));
    int m;
    cin >> m;
    // write your code here......
    char *p = NULL;
    p = &str[m-1]; // 从第 m 个字符开始的剩余全部字符串的内存地址(指针)。
    cout << p << endl; // 打印内存地址(指针)即打印其指向的(字符串)内容。
    return 0;
}










