We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
how to get a string input and compare it . say for example: if i get a string input"LED ON " and i want to compare it with a list of string say "LED ON ",LED OFF,FAN ON,FAN OFF.....
give me the commands and some sample programs .please.
"in my project i am receiving information serially from a cellphone using 'at commands'."
That part is actually irrelevant to the process.
You need to do some thinking:
The characters arrive at the UART one-by-one;
You could collect characters until you have a complete message, and then use the standard string functions from the standard 'C' library to compare them against your key words;
Or you could have a state machine, and examine each character as it is received so that you'd know immediately when a key had been matched;
Or you could think of something else...
So, you post code for a magic preprocessor that you have not informed about. How many would be able to figure out what tool to use to convert it to real code?
And it is an OCX - how many tools have OCX integration?
And what is the difference between "otherwise" and "missing"?
yes i have not anounced it to the release but the docs are in progress
maybes i do an exe or other
i m' not got the name but thinksing about jon++
"otherwise" is somthing but not same
"missing" is nothin
Sample program from bsearch man page:
#include <stdio.h> #include <stdlib.h> #include <string.h> struct mi { int nr; char *name; } months[] = { { 1, "jan" }, { 2, "feb" }, { 3, "mar" }, { 4, "apr" }, { 5, "may" }, { 6, "jun" }, { 7, "jul" }, { 8, "aug" }, { 9, "sep" }, {10, "oct" }, {11, "nov" }, {12, "dec" } }; #define nr_of_months (sizeof(months)/sizeof(months[0])) static int compmi(const void *m1, const void *m2) { struct mi *mi1 = (struct mi *) m1; struct mi *mi2 = (struct mi *) m2; return strcmp(mi1->name, mi2->name); } int main(int argc, char **argv) { int i; qsort(months, nr_of_months, sizeof(struct mi), compmi); for (i = 1; i < argc; i++) { struct mi key, *res; key.name = argv[i]; res = bsearch(&key, months, nr_of_months, sizeof(struct mi), compmi); if (res == NULL) printf("'%s': unknown month\n", argv[i]); else printf("%s: month #%d\n", res->name, res->nr); } return 0; }
Convert struct to store a function pointer. If the table is sorted from the beginning, there will be no need for qsort().
Note that the besearch solution above is good for really, really large tables since every doubling of the table will only add one more strcmp() call. Most monitor programs or similar doesn't have enough commands to require a constant-time or logarithmic-time solution. A for loop through a table or consecutive if statements will normally be ok.