简体   繁体   中英

String to const char* in Arduino?

I have a variable tweet that is a string and it has a character at the very beginning that I want to clip off.

So what I want to do is use strstr() to remove it. Here's my code:

tweet = strstr(tweet, "]");

However, I get this error:

cannot convert 'String' to 'const char*' for argument '1' to 
'char' strstr(const char*, const char*)

So my thought would be to convert tweet into a char. How would I go about doing so?

string有一个c_str()成员函数,它返回const char *

How about you use substring instead. This will be less confusing than converting between different types of string.

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

you can do that easier. Since you're using C++:

tweet = tweet.substring(1);

substr() returns a part of the string back to you, as string. The parameter is the starting point of this sub string. Since string index is 0-based, 1 should clip off the first character.

If you want to use strstr you can just cast tweet into a c-string:

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

However, that's pretty inefficient since it returns a c-string which has to be turned into a std::string against in order to fit into tweet.

Look at:

string.indexOf(val)
string.indexOf(val, from)

Parameters

string: a variable of type String
val: the value to search for - char or String
from: the index to start the search from

See this page

I realize this is an old question, but if you're trying to, say, compare a specific char, and not just one letter in a string, then what you want is string .charAt(n). For example, if you're doing serial programming and you need to check for STX (\\02) than you can use the following code.

char STX = '\02'

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

使用以下语句tweet.c_str()将返回字符串缓冲区,这将允许您执行所需的编辑。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM