Я пытаюсь сравнить два массива символов и распечатать на терминал, была ли найдена строка. Когда я запускаю свой код, выводимый вывод возвращает нагрузку jibber, которая не связана с тем, что я указал. Я думаю, что больше памяти, чем я указал, печатается, но я не уверен, почему.Использование strstr в C MBED, результат печати
Str str возвращает указатель на начальный индекс найденной строки (если найден), если нет. Я предполагаю, что это то, что вызывает ошибку, но я подумал, только проверяя, был ли результат нулевым, а не печатать результат.
Мой код:
include "mbed.h"
include "string.h"
char input[] = "Hello mbed";
char value[] = "llo";
int main() {
char * output;
output = strstr(input, value);
bool found = false;
if (output != NULL) {
found = true;
}
printf(found ? "true" : "false");
}
Мой выход:.!
trueloHello mbed½mà $ Õ [F FðMøDà (ÛÝéBÝ @ \ À0 ZFGñ @@ ЦТС ZFGmºñªñ ÝÜàøZFGm¸ñ¨ñôÜ [F F «AE- + -éðAF% FFÔà9F ° GmdùÕ (F½èð-éðAF% FFÈÕ0'à«ÕàAF8F ° GmdùÕ (F½èðJh * D HS [email protected]
pGðμF ° F2¡ü ÷ EO (¿% 0OÐWø% Н ± м-Uoga-IHB ` ° ð½-? Ò x: (Ð FHFþ ÷ ýhFþ ÷ mý (3 ý ¿÷ ÷ ÷ à à à à à à à à à à à à ý ý ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ "" "" "" "" "" "" "" "" ""%%%%%%%%%%%%%% е ° ð½Oð 0 ° ð½ð¿ $ ÛÑð¿ $$ Ос: ТТЛ:% р (¼¿ pGJëPø .......
Кажется, что ошибка в реализации компилятора ... возможно, вы могли бы просмотреть сгенерированный код сборки, чтобы узнать, что происходит. Или обратитесь к поставщику. –
при компиляции всегда включайте все предупреждения. затем исправить полученные сообщения из компилятора – user3629249
Я не вижу ничего плохого в коде, который вы опубликовали, что вызовет эту ошибку. Является ли заголовочный файл «mbed.h» чем-то болтливым? Попробуйте избавиться от строки 'include 'mbed.h" '. –