字符串到const char*在Arduino
String to const char* in Arduino?
我有一个变量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
代替如何?这将比在不同类型的字符串之间转换更容易理解。
你可以做得更容易。因为你正在使用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
查看此页
相关文章:
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- Writing Char to Arduino EEPROM
- Arduino 无法匹配 Char 数据
- C++从 'const char*' 到 'char*' Arduino Uno 的无效转换
- Arduino(C )condenate char*阵列与float数组
- Arduino char 数组到整数值
- Arduino:尝试将Char[]转换为字符串时为空字符串
- 如何在Arduino中将字符串转换为char*
- Arduino 无法在初始化时将'float'转换为'const char*'
- 在Arduino Radiohead中使用serial.read()与const char *
- Arduino:未定义的对"I2CRW::readByte(unsigned char, unsigned char)"的引用
- Arduino char* 数组[] : "vanishing" 个字符
- 使用Arduino将String转换为const-char*类型
- Arduino串行返回奇怪的数字+将char数组转换为int C++时出现问题
- 如何在Arduino serial read()上将char转换为int
- C++Arduino,在带有char指针参数的方法中使用sprintf,破坏了程序
- 字符串到const char*在Arduino
- 我如何比较Arduino上的__FlashStringHelper*与char*
- 转换int为字符串/char c++ /Arduino
- 在Arduino上从字符串转换为char*