指针
详见:
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;
}