我有一个字符串变量tweet
,它的开头有一个字符,我想要把它去掉。
所以我想使用strstr()
函数来实现。下面是我的代码:
tweet = strstr(tweet, "]");
然而,我收到了这个错误:
cannot convert 'String' to 'const char*' for argument '1' to
'char' strstr(const char*, const char*)
我的想法是将 tweet
转换为字符。我应该如何做?
string
有一个成员函数c_str()
,返回一个 const char *
类型的指针。
你可以考虑使用substring
。与转换不同类型的字符串相比,这样做会更加清晰易懂。
char STX = '\02'
if (inputString.charAt(0) == STX) {
doSomething();
}
你可以更容易地做到这一点。因为你正在使用C++:
tweet = tweet.substring(1);
substr() 函数返回一个字符串的一部分作为字符串。
参数是这个子字符串的起始点。由于字符串索引是基于0的,所以1应该剪掉第一个字符。
如果你想使用 strstr 函数,你可以将 tweet 强制转换为 C 字符串:
tweet = strstr( tweet.c_str(), "]" );
然而,这相当低效,因为它返回一个C字符串,必须再次转换为std::string才能适应推文。
tweet.c_str()
将返回字符串缓冲区,使您能够执行所需的编辑。看这里:
string.indexOf(val)
string.indexOf(val, from)
参数
string: a variable of type String
val: the value to search for - char or String
from: the index to start the search from
c_str()
方法获取const char*
。 - ismailString
的定义,看看是否有适合的函数(例如std::string
的c_str()
成员函数)——希望有一些方法可以做到你想要的而不必去研究 C 风格的字符串。但是如果不知道String
是什么,这个问题就无法得到答案。 - Mike Seymour