У меня есть переменная tweet, которая представляет собой строку, и в самом начале у нее есть символ, который я хочу обрезать.
Итак, что я хочу сделать, это использовать strstr(), чтобы удалить его. Вот мой код:
tweet = strstr(tweet, "]");
Однако я получаю эту ошибку:
cannot convert 'String' to 'const char*' for argument '1' to
'char' strstr(const char*, const char*)
Поэтому я подумал бы преобразовать tweet в char. Как мне это сделать?
Ответ 1 · рейтинг 9 · David Grayson
Как насчет того, чтобы вместо этого использовать substring. Это будет менее запутанно, чем преобразование между различными типами строк.
http://arduino.cc/en/Reference/StringSubstring
Ответ 3 · рейтинг 1 · s3rius
вы можете сделать это проще. Поскольку вы используете С++:
tweet = tweet.substring(1);
substr() возвращает вам часть строки в виде строки. Параметр является отправной точкой этой подстроки. Поскольку индекс строки начинается с 0, 1 должен отсекать первый символ.
Если вы хотите использовать strstr, вы можете просто преобразовать tweet в c-строку:
tweet = strstr( tweet.c_str(), "]" );
Однако это довольно неэффективно, так как возвращает c-строку, которую нужно преобразовать в std::string, чтобы вписаться в твит.
Ответ 6 · Brian Chow
Я понимаю, что это старый вопрос, но если вы пытаетесь, скажем, сравнить конкретный char, а не только одну букву в строке, то вам нужна string.charAt(n) . Например, если вы выполняете последовательное программирование и вам нужно проверить STX (\02), вы можете использовать следующий код.
char STX = '\02'
if (inputString.charAt(0) == STX) {
doSomething();
}