PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : regular expression Atmega32



walterk
25.12.2009, 22:18
Hallo Forum,

möchte über RS232 laufend durch Software auf PC erstellte Char-Arrays auf einen Atmega32 senden und aus diesem Array nur die Zahlenwerte, Kommapunkte und Blanks benutzen.

Mit /[0-9]/, /\./, / / oder isdigit komme ich nicht weiter.

Der Beispielcode läuft unter Fedora und gcc, meine µC Umgebung ist Vista, AVR-Studio4.18 und das RN-Controllerboard.

Welche(n) Fehler habe ich in dem angeführten Code gemacht?
Was muss ich beachten, wenn ich den angeführten Code auf einem Atmega32 als Teil eines Programms ausführen will?


Danke für die Antworten.



#include <stdio.h>
#include <regex.h>
#include <ctype.h>

int main(void){

int test = 2;
//int test = 'r';
if (isdigit(test)){

printf("\ntest beinhaltet: %c %d\n\n", test, test);

}
else
{
printf("\nLeider keine Ziffer zwischen 0 und 9\n");
}


printf("\ntest beinhaltet nach der if Anweisung: %c %d\n\n", test, test);


}

mano
25.12.2009, 23:42
wenn Du schreibst
int test = '2'; sollte isdigit() funktionieren...

Für eine Portierung auf AVR's würde ich's so machen:
if( ('0' => test && test <= '9') || test == '.' || test == ' ')[/code]

walterk
26.12.2009, 09:29
Hallo mano,

danke für deine schnelle Antwort. Die einfachen Hochkomma funktionieren.