字符串到Arduino中的const char *?
我有一个变量tweet
,它是一个字符串,它在一开始就有一个字符我要剪掉。
所以我想要做的是使用strstr()
来删除它。 这是我的代码:
tweet = strstr(tweet, "]");
但是,我收到此错误:
cannot convert 'String' to 'const char*' for argument '1' to 'char' strstr(const char*, const char*)
所以我的想法是将tweet
转换为char。 我该怎么做呢?
你怎么用substring
代替。 这比在不同类型的字符串之间进行转换更容易混淆。
string
有一个c_str()
成员函数,它返回const char *
。
你可以做得更容易。 因为你正在使用C ++:
tweet = tweet.substring(1);
substr()以字符串forms返回字符串的一部分。 参数是此子字符串的起点。 由于字符串索引是从0开始的,因此1应该剪切掉第一个字符。
如果你想使用strstr,你可以将tweet转换为c-string:
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
见本页
我意识到这是一个老问题,但是如果你试图比较一个特定的字符,而不是字符串中的一个字母,那么你想要的是字符串 .charAt(n)。 例如,如果您正在进行串行编程,并且需要检查STX(\ 02),则可以使用以下代码。
char STX = '\02' if (inputString.charAt(0) == STX) { doSomething(); }