Tag: 终止符

将编码为字符数组的C-ctyle字符串转换为Java字符串

我有一个C风格的字符串编码为Java中的字符数组,但我想将此数组转换为Java字符串。 我尝试使用匹配的构造函数调用, String toRet = new String(new char[]{‘B’,’A’,’D’,’\0′, ‘G’, ‘A’, ‘R’, ‘B’, ‘A’, ‘G’, ‘E’}); System.out.println(Arrays.toString(toRet.toCharArray())); 但结果是不正确的,事实上奇怪的错误。 以下是上述代码输出的内容: [B, A, D, 这就是我想要的 [B, A, D] 我在Ubuntu上运行openJdk6。 我还没有在其他VM上测试过上面的代码。

Memcpy,字符串和终结符

我必须编写一个函数,用一个字符串的内容填充指定长度的char *缓冲区。 如果字符串太长,我只需要剪切它。 缓冲区不是由我分配的,而是由我的函数用户分配的。 我试过这样的事情: int writebuff(char* buffer, int length){ string text=”123456789012345″; memcpy(buffer, text.c_str(),length); //buffer[length]=’\0′; return 1; } int main(){ char* buffer = new char[10]; writebuff(buffer,10); cout << "After: "<<buffer<<endl; } 我的问题是关于终结者:它应该存在与否? 这个函数用在一个更广泛的代码中,有时候当我需要剪切字符串时,我会遇到奇怪字符的问题。 有关正确程序的任何提示吗?