c++ - 将一个数组中的 char 值分配给另一个数组中的 char 值

标签 c++ arrays sizeof strlen

听起来很简单,但我遇到了一个错误,我不确定是什么原因导致的?

nopunccount = 0;
char *ra = new char[sizeof(npa)];
while (nopunccount <= strlen(npa)) {
    ra[nopunccount] = npa[strlen(npa) - nopunccount]; 
    nopunccount++;
}

ra 永远不会为它赋值,我已经验证 npa 具有在 nopunccount 范围内提供的 char 值。

感谢任何帮助//:)

最佳答案

nopunccount从 0 开始,因此在循环的第一次迭代中分配给 ra[0] 的字符是 npa[strlen(npa)]。这是该字符串的终止 '\0'。因此 ra 中的结果字符串以 '\0' 开头,因此通常的字符串函数将其视为在第一个字节处结束。

关于c++ - 将一个数组中的 char 值分配给另一个数组中的 char 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2362152/

相关文章:

javascript - 如何更改内部元素和数组

android - 根据条件对 Spinner 中的值进行排序

c++ - 数组、函数和随机数

c - 为什么0的大小显示为4?

c++ - 将 char * 转换为 uint16 和 uint32

c++ - 如何在单个库中包含多个类?

c - 结构 tm 的大小

c - 为什么要添加填充,如果 char 在 int 之后?

c# - 如何在给定的持续时间内从 0..1..0..1..0 等创建脉动值?

c++ - 创建相同的套接字