Mag*_*age 1 c string null pointers char
我试图通过设置空终结符来终止c在特定位置的字符指针.
例如,如果我有一个字符指针
char *hi="hello";
Run Code Online (Sandbox Code Playgroud)
我希望它"hell"通过设置o为null.
我试过用strcpy这样做
strcpy(hi+4, "\0");
Run Code Online (Sandbox Code Playgroud)
但它没有用.
"hello"是一个字符串文字,所以它不能修改,并在您的代码中,hi指向这样的文字中的第一个元素.任何修改它指向的东西的尝试都是未定义的行为.
但是,如果您创建自己的char数组,则可以随意插入空终止符.例如,
char hi[] = "hello"; // hi is array with {'h', 'e', 'l', 'l', 'o', '\0'}
hi[4] = '\0';
Run Code Online (Sandbox Code Playgroud)
这里hi是char您拥有的长度为6的数组,您可以修改其内容.设置第5个元素后,它包含{'h', 'e', 'l', 'l', '\0', '\0'},并打印它将产生hell.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |