Строка для const char * в Arduino? - PullRequest
       15

Строка для const char * в Arduino?

2 голосов
/ 20 декабря 2011

У меня есть переменная tweet, которая является строкой и имеет символ в самом начале, который я хочу обрезать.

Итак, я хочу использовать strstr(), чтобы удалить его.Вот мой код:

tweet = strstr(tweet, "]");

Тем не менее, я получаю эту ошибку:

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

Поэтому я подумал бы преобразовать tweet в символ.Как бы я поступил так?

Ответы [ 6 ]

9 голосов
/ 20 декабря 2011

Как насчет использования substring вместо. Это будет менее запутанным, чем преобразование между различными типами строк.

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

9 голосов
/ 20 декабря 2011

string имеет c_str() функцию-член, которая возвращает const char *.

1 голос
/ 20 декабря 2011

Вы можете сделать это проще.Поскольку вы используете C ++:

tweet = tweet.substring(1);

substr () возвращает вам часть строки в виде строки.Параметр является отправной точкой этой подстроки.Так как индекс строки основан на 0, 1 должен обрезать первый символ.

Если вы хотите использовать strstr, вы можете просто привести твит в строку c:

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

Однако,это довольно неэффективно, так как он возвращает c-строку, которую нужно превратить в std :: string, чтобы вписать в твит.

0 голосов
/ 26 января 2014

Я понимаю, что это старый вопрос, но если вы пытаетесь, скажем, сравнить конкретный символ, а не только одну букву в строке, то вам нужно: string .charAt (п).Например, если вы занимаетесь последовательным программированием и вам нужно проверить STX (\ 02), вы можете использовать следующий код:

char STX = '\02'

if (inputString.charAt(0) == STX) {
  doSomething();
}
0 голосов
/ 11 декабря 2013

Посмотрите на:

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

См. Эту страницу

0 голосов
/ 20 декабря 2011

Использование следующего оператора tweet.c_str() вернет строковый буфер, который позволит вам выполнить необходимое редактирование.

...