我试图通过设置空终止符来终止 c 中的字符指针,在特定位置。
例如,如果我有一个 char 指针
char *hi="hello";
我希望它是"hell"
通过设置o
为空。
我尝试过使用 strcpy 来执行此操作,例如
strcpy(hi+4, "\0");
但它不起作用。
"hello"
是一个字符串文字,因此无法修改,并且在您的代码中,hi
指向此类文字中的第一个元素。任何修改它指向的东西的尝试都是未定义的行为.
但是,如果您创建自己的char
数组中,可以随意插入空终止符。例如,
char hi[] = "hello"; // hi is array with {'h', 'e', 'l', 'l', 'o', '\0'}
hi[4] = '\0';
Here, hi
是一个长度为 6 的数组char
您拥有其内容并且可以修改其内容。设置第5个元素后,它包含{'h', 'e', 'l', 'l', '\0', '\0'}
,打印它会产生hell
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)