Полная версия этой страницы:
Сравнение строк атмега32
Kruftin
Jun 1 2012, 06:34
Как проще всего сравнить значения в массиве со строкой?
Пусть есть массив char Buf[10];
Нужно узнать соответствуют ли его элементы например слову "test";
Ну слово тест можно например в массив упрятать. Так вот не по символу же сравнивать совпадение? Ну или если по символу, то как быстрее?
MrYuran
Jun 1 2012, 06:40
Цитата
Так вот не по символу же сравнивать совпадение?
а как иначе ? memcmp, strcmp, strncmp
Kruftin
Jun 1 2012, 07:59
Ну т.е. получится нечто вроде:
Код
#include <string.h>
char Buf[20] = "Test";
char string1[] = "Test";
if(!strcmp(Buf[],string1[]))
{
body
}
да, но можно короче:
Код
#include <string.h>
char Buf[20] = "Test";
if(!strcmp(Buf[], "Test")) {
body
}
Kruftin
Jun 1 2012, 08:27
А еще не подскажете как сделать массив пустым, после выполнения всех операций?
в каком смысле ? освободить занимаемую память ? или заполнить пробелами ?
Kruftin
Jun 1 2012, 08:45
Заполнить пробелами, ну т.е. захочу я например заново записать данные в массив для сравнения, причем по байту, тогда чтобы сработало лексикографическое сравнение мне достаточно заполнить массив пробелами, если да, то как быстрее?
Kruftin
Jun 1 2012, 09:42
Код
char buf[20] = "test";
char c = "";
memset(buf[],c,21);
компилятор CVAVR на такое if(!strcmp(gga_data[], "$GPGGA")) ругается типа неверное выражение. Видимо надо просто писать gga_data, без скобочек.
Kruftin
Jun 1 2012, 11:26
А еще не подскажете, почему у меня через терминал не отправляется по уарту строчка, начинающаяся с доллара?А ну хотя это похоже особенности терминала, проблема исчерпана.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.