用c++写一个模拟strcpy函数作用的新函数,不要用指针函数
时间: 2023-06-14 19:07:00 浏览: 55
好的,下面是一个示例代码:
```c++
#include <iostream>
void my_strcpy(char dest[], const char src[]) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
int main() {
char src[] = "Hello, world!";
char dest[20];
my_strcpy(dest, src);
std::cout << "src: " << src << std::endl;
std::cout << "dest: " << dest << std::endl;
return 0;
}
```
上面的代码中,`my_strcpy` 函数模拟了 `strcpy` 函数的作用,将源字符串 `src` 复制到目标字符串 `dest` 中。由于不使用指针,我们使用字符数组作为参数,并通过下标遍历字符串来复制字符。注意,最后需要在目标字符串的末尾加上字符串结束符 `\0`。在 `main` 函数中,我们通过调用 `my_strcpy` 函数来测试它的正确性。
相关问题
DeVC++中无法使用strcpy函数该用什么替换呢?
在 DevC++ 中,你可以使用 `strcpy_s` 函数来替换 `strcpy` 函数。`strcpy_s` 函数比 `strcpy` 函数更安全,因为它允许你指定要复制的字符串长度,从而避免了缓冲区溢出的风险。使用 `strcpy_s` 函数的示例代码如下:
```
char str1[20];
char str2[20] = "Hello, world!";
strcpy_s(str1, sizeof(str1), str2);
```
在上面的示例代码中,`str1` 数组是要复制到的目标字符串,`sizeof(str1)` 参数指定了 `str1` 数组的大小,`str2` 是要复制的源字符串。这样做可以确保 `str1` 数组不会发生缓冲区溢出的情况。
C++strcpy函数
C++中的strcpy函数用于将一个字符串复制到另一个字符串中。它的函数原型如下:
```c++
char* strcpy(char* dest, const char* src);
```
其中,dest是目标字符串的指针,src是源字符串的指针。该函数会将源字符串中的内容复制到目标字符串中,直到遇到源字符串的结束符'\0'为止,并返回目标字符串的指针。
以下是一个使用strcpy函数的例子:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str1[10];
char str2[10] = "hello";
strcpy(str1, str2);
cout << "str1: " << str1 << endl; // 输出:str1: hello
return 0;
}
```