有一个字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串,用指针处理。c++解决
时间: 2023-12-10 19:41:09 浏览: 70
可以使用指针的方式来解决这个问题,具体代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
char* copyString(char* str, int m) {
int len = strlen(str);
char* newStr = new char[len - m + 1]; // 动态分配内存
int i;
for (i = m-1; i < len; i++) { // 从第m个字符开始复制
newStr[i - m + 1] = str[i];
}
newStr[i - m + 1] = '\0'; // 添加字符串结束标志
return newStr;
}
int main() {
char str[] = "Hello, World!";
int m = 7;
char* newStr = copyString(str, m);
cout << newStr << endl; // 输出 "World!"
delete[] newStr; // 释放内存
return 0;
}
```
其中,`copyString` 函数接受两个参数,分别是原始字符串和起始位置。该函数首先计算出原始字符串的长度,然后动态分配内存来存储新字符串,并从起始位置开始复制原始字符串中的字符。最后,该函数添加字符串结束标志并返回新字符串的指针。
在主函数中,我们定义了一个原始字符串 `str` 和起始位置 `m`,然后调用 `copyString` 函数来获得新字符串的指针,并输出新字符串。最后,我们释放了动态分配的内存。
这段代码的输出结果应该是 "World!"。
阅读全文