有一个字符串,包含n个字符。通过c++,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串,用指针处理。
时间: 2023-12-10 20:39:11 浏览: 27
可以使用指针和循环来实现这个功能。以下是示例代码:
```c++
#include <iostream>
using namespace std;
int main() {
char str1[100], str2[100];
int n, m;
char *p1, *p2;
cout << "请输入一个字符串:";
cin >> str1;
n = strlen(str1);
cout << "请输入起始位置m:";
cin >> m;
// 将p1指向第m个字符
p1 = str1 + m - 1;
p2 = str2;
// 将p1所指向的字符复制到p2所指向的位置,直到结束
while (*p1 != '\0') {
*p2 = *p1;
p1++;
p2++;
}
// 输出结果
*p2 = '\0';
cout << "从第" << m << "个字符开始的字符串是:" << str2 << endl;
return 0;
}
```
在这个示例中,我们首先定义了两个字符数组`str1`和`str2`,用于储存输入的字符串和复制后的字符串。然后,我们使用`strlen`函数获取输入字符串的长度,并通过`cin`获取起始位置`m`。
接下来,我们使用指针`p1`和`p2`来操作字符串。将`p1`指向第`m`个字符,将`p2`指向`str2`的首地址。然后,我们使用`while`循环,将`p1`所指向的字符复制到`p2`所指向的位置,直到`p1`指向字符串的末尾。最后,我们在`str2`的最后一个字符后面添加一个空字符,以便将其作为字符串输出。
运行程序,即可输入一个字符串和起始位置,程序将输出从第`m`个字符开始的字符串。例如,如果输入字符串为`hello world`,起始位置为`3`,则程序将输出`llo world`。