c++ - 切断一个字符的末尾 *

标签 c++ string

所以我有一个 char *。最后我想删掉一些。所以

char *sentence = "My name is Ted";

如何切断 Ted.我可以使它成为一个字符串,然后使用子字符串(来自 Java,这是我的方法),但 id 而不是那样做。但我不确定如何使用 char * 来做到这一点。

编辑:进一步讨论这个问题。问题出在一个函数中,该函数接受一个进程,并打算在该进程启动时返回位置。没关系,我可以得到它。但是参数 char *procLocation 是通过引用传递的,因此位置将被发送回那里。

我只能获取包含进程名称的位置。我想截掉进程名称,只返回位置。我尝试将位置设为字符串并执行子字符串(字符串 - processName 的长度)。没关系。但是

procLocation = location.c_str(); // where location.substr is the location - the process name

返回错误:error C2440: '=' : cannot convert from 'const char *' to 'char *'

最佳答案

因为那是一个字符串字面量,所以你不能修改它。

如果你这样做了:

char sentence[] = "My name is Ted";

您可以简单地将 Ted 之前的字符设置为 \0

不过,您最好还是使用 std::string

关于c++ - 切断一个字符的末尾 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10348960/

相关文章:

java - 限制字符串的长度

java - 将 String[] 拆分为另外两个 String[]

c# - 自动编辑字符串以删除空格 C#

c++ - C/C++ 后置递增不止 1

c++ - 通过桌面应用程序/安全性查询数据库

c++ - 为什么我不能在类中初始化非常量静态成员或静态数组?

c# - 如何在我的字符串中插入 '-'?

c++ - 在连续的内存位置存储字符串文字

c++ - 如何在 vector C++ 中打印元素

参数中的c++ const