Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сравнение строк атмега32
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Kruftin
Как проще всего сравнить значения в массиве со строкой?
Пусть есть массив char Buf[10];
Нужно узнать соответствуют ли его элементы например слову "test";
Ну слово тест можно например в массив упрятать. Так вот не по символу же сравнивать совпадение? Ну или если по символу, то как быстрее?
MrYuran
string.h
ukpyr
Цитата
Так вот не по символу же сравнивать совпадение?
а как иначе ? memcmp, strcmp, strncmp
Kruftin
Ну т.е. получится нечто вроде:
Код
#include <string.h>

char Buf[20] = "Test";
char string1[] = "Test";
if(!strcmp(Buf[],string1[]))
{
   body
}
ukpyr
да, но можно короче:
Код
#include <string.h>
char Buf[20] = "Test";
if(!strcmp(Buf[], "Test")) {
   body
}
Kruftin
А еще не подскажете как сделать массив пустым, после выполнения всех операций?
ukpyr
в каком смысле ? освободить занимаемую память ? или заполнить пробелами ?
Kruftin
Заполнить пробелами, ну т.е. захочу я например заново записать данные в массив для сравнения, причем по байту, тогда чтобы сработало лексикографическое сравнение мне достаточно заполнить массив пробелами, если да, то как быстрее?
ukpyr
memset
Kruftin
Код
char buf[20] = "test";
char c = "";
memset(buf[],c,21);


компилятор CVAVR на такое if(!strcmp(gga_data[], "$GPGGA")) ругается типа неверное выражение. Видимо надо просто писать gga_data, без скобочек.
Kruftin
А еще не подскажете, почему у меня через терминал не отправляется по уарту строчка, начинающаяся с доллара?А ну хотя это похоже особенности терминала, проблема исчерпана.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.