字符串到const char*在Arduino

String to const char* in Arduino?

本文关键字:Arduino char const 字符串      更新时间:2023-10-16

我有一个变量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代替如何?这将比在不同类型的字符串之间转换更容易理解。

http://arduino.cc/en/Reference/StringSubstring

你可以做得更容易。因为你正在使用c++:

tweet = tweet.substring(1);

substr()将字符串的一部分作为字符串返回给您。参数是这个子字符串的起始点。因为字符串索引是从0开始的,所以1应该剪掉第一个字符。

如果你想使用strstr,你可以把tweet转换成c-string:

tweet = strstr( tweet.c_str(), "]" );

然而,这是相当低效的,因为它返回一个c字符串,必须转换成std::string来适应tweet

我知道这是一个老问题,但是如果你想比较一个特定的字符,而不仅仅是字符串中的一个字母,那么你想要的是string. charat (n)。例如,如果您正在进行串行编程,并且需要检查STX(2),则可以使用以下代码。

char STX = '2'
if (inputString.charAt(0) == STX) {
  doSomething();
}

使用下面的语句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

查看此页