gpt4 book ai didi

C++ 从复制文本。从 char* var 到 char* var2 的文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:16:10 24 4
gpt4 key购买 nike

我刚开始学习 C++,我在理解处理地址和将变量从一个地址重写到另一个地址方面遇到了问题。我有一个程序要纠正:

using namespace std;

void cp(char* str2, char* str1) {

cout << &(str1+1);

}

int main()
{
char *str1 = "ppC";

char str2[10] = "Witaj";

// cout << str2 << endl; // Witaj

cp(str2,str1);
}

问题:我必须编写一个函数来将文本从 str1 重写为 str2。我还必须使用指定数量的内存来将文本存储在 str2 中。

但我在第一步就卡住了:我想从 str1 的地址开始(它的 str1[0] 地址对吗?)然后我想在向每个地址添加 +1 以遍历 str1 的所有元素并写入它之后循环到新的 char* var 并将其返回。

最佳答案

据我了解,您将编写一个函数,将存储在一个字符数组中的字符串复制到另一个字符数组中。

通常这样的字符串函数也会返回指向目标数组第一个字符的指针。

所以代替

void cp(char* str2, char* str1);

最好像这样声明函数

char * cp( char *str2, const char *str1 );

这是一个低级函数,t 不应该检查目标数组中是否有足够的空间。这是调用者的问题。

所以函数可以这样定义

char * cp( char *str2, const char *str1 )
{
char *p = str2;

while ( *str2++ = *str1++ );

return p;
}

考虑到第二个参数的类型是 const char *。在这种情况下,您可以使用常量数组作为此参数的参数,包括字符串文字。

在您的程序中使用变量声明,您可以按以下方式调用该函数

std::cout << cp( str2, str1 ) << std::endl;

关于C++ 从复制文本。从 char* var 到 char* var2 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com