gpt4 book ai didi

c++ - 从 char 数组中剥离字符作为 C++ 中的指针传递

转载 作者:太空宇宙 更新时间:2023-11-04 15:08:21 25 4
gpt4 key购买 nike

关于如何从 char 数组中剥离字符的任何建议作为 C++ 中的指针传递。我必须使用 memcpy 函数来复制。

void foo(char *test)
{
char a[1] = {0};
char b[1] = {0};
char c[1]= {0};

memcpy(&a,&test[0],1);
memcpy(&b,&test[1],1);
memcpy(&c,&test[2],1);

cout << a <<endl;
cout << b <<endl;
cout << c <<endl;
}

int main()
{
char uibuffer[4] = "ABC";
foo(uibuffer);
return 0;
}

当前输出为:

ABC��
BC��
C��

期望的输出是:

A
B
C

最佳答案

void foo(char *test)
{
/* Please note, you need to add one extra byte here for a terminator */
char a[2] = {0};
char b[2] = {0};
char c[2]= {0};

memcpy(&a,&test[0],1);
memcpy(&b,&test[1],1);
memcpy(&c,&test[2],1);

cout << a <<endl;
cout << b <<endl;
cout << c <<endl;
}

int main()
{
char uibuffer[4] = "ABC";
foo(uibuffer);
return 0;
}

考虑通过摆脱数组和内存复制来改进您的代码。简单的 char a = buffer[x​​] 就可以解决问题。

关于c++ - 从 char 数组中剥离字符作为 C++ 中的指针传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315428/

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