-
Thread
über uart string empfangen und auswerten!
sicherlich länger als 1 Zeichen ist, denn in x hineinpassen? Was du brauchst ist ein char-Feld. Strings werden in C in char Felder abgespeichert und es obliegt deiner Verantwortung als Programmierer, dass dieses Array auch gross genug ist, sodass der String auch hineinpasst. sprintf(x,"0x%02x
buffer, oder auf das Ziel, also kgbuffer? In deinem Code da oben kommen viele variablen a, b, c, d, etc vor. Was hat es mit denen auf sich? Bis jetzt versteh ich eigentlich nur, dass du möchtest: for( i = 0; i < buffer_length; ++i ) kgbuffer[i] = buffer[i+4]; wenn der String
-
Thread
STM32 USB Übertragungsproblem mit Code von S.F.
+ DEVICE_ID_SIZE-1); j>2; idB--) { x = *idB; c = (char)(x & 0x0F); if (c < 10) c += 0x30; else c += 0x37; StringSerial[--j] = 0; StringSerial[--j] = c; x >>= 4; c = (char)(x & 0x0F); if (c < 10) c += 0x30; else c += 0x37; StringSerial[--j] = 0; StringSerial[--j] = c; } // serial number finished [/code] Ich bin mir aber nicht sicher, ob die Seriennummer dann nicht
-
Thread
Arduino: Ist boolean intern als Bit oder byte (char) organisiert?
Pascal kann man problemlos mit Array arbeiten, ohne > sich um Pointer irgendwie zu kümmern; für Strings gilt > im Prinzip dasselbe. Kann man in C auch. Allerdings dürfen in C Strings auch nahezu beliebig lang sein. Egon D. schrieb im Beitrag #5608233: > Pointer kommen erzwungendermaßen erst
S. R. schrieb im Beitrag #5608306: > Kann man in C auch. Allerdings dürfen in C Strings auch nahezu beliebig > lang sein. Die Viren wissen es zu schätzen, sind diese nullterminierten Strings doch immer wieder für Bufferüberläufe gut. Falls Du
-
Thread
Buffer auf SD/MMC Speichern?
wird nur ein teil der zeichen gelesen Welcher Teil? Du solltest dir *unbedingt* die Abteilung Strings und Stringverarbeitung in einem brauchbaren C-Buch mal genauer ansehen. Ich könnte mir gut vorstellen, dass hier mehrere Dinge schiefgehen: [c] reading=Fread(string,strlen(string)); // 10 Zeichen lesen. Wohin aber mit dem Stringende? ser_putc(string); // was macht ser_putc() [/c]
-
Thread
Lifetime String Literal in C
Wie lange ist eigentlich die Lifetime von String Literalen in C? Wenn ich z.B. schreiben [c] char* bar(...) { ... ... return "Hello world"; } int main(void) { ... char *foo = bar(...); ... } [/c] oder [c] typedef struct
C-1/4 Profi schrieb im Beitrag #4256947: > Wie lange ist eigentlich die Lifetime von String Literalen in C? Quasi "für immer". C-1/4 Profi schrieb im Beitrag #4256947: > wie lange werden dann meine
-
Thread
Frage zu Strings in C
Hallo, ich verstehe folgenden Zusammenhang nicht. Wenn ich mir ein Array in C definiere char test[] = {"ÄHallo"}; ergibt das test[0] = 195 'Ã' test[1] = 132 '\204' test[2] = 72 'H' test[3] = 97 'a' test[4] = 108 'l' test[5] = 108 'l' test[6] = 111 'o' test[7] = 0 '\0' Warum belegt das Ä 2 Byte ... ich hätte jetzt ein Byte mit dem Inhalt 196 erwartet. Gruß Kay
-
Thread
Serial Communiction uint8_t* Arduino
Axel S. schrieb im Beitrag #7268026: > Und ein old school "String" in C ist ein > Array derselben bzw. ein Pointer darauf. Ein C-String ist ein Array aus char, nicht ein Array aus unsigned char. Ob char selbst wiederum signed oder unsigned ist, ist nicht festgelegt
es. Bitte nicht nochmals mir erklären, was ein Ringbuffer, wie ein String Objekt aufgebaut ist und wie ein char Array bzw. ein String in C aufgebaut ist. Ich habe in reinen C auf einem Linux System schon einige Projekte umgesetzt. Also Variablentypen und co kann ich unterscheiden
-
Thread
Pollin LCD1602 keine Anzeige
Hi, Ich mache es mal kurz: ldi ZL, LOW(text1*2) ldi ZH, HIGH(text1*2) rcall lcd_flash_string ldi temp1 ,$c0 ;=ADR $40+$80 für ADR DDRam set rcall lcd_command rcall lcd_flash_string loop: rjmp loop text1: .db "TestABCD",0 text2: .db "EFGHIJKL",0 ; Mein String
rcall lcd_command rcall lcd_flash_string ;text1 ausgeben ldi temp1 , $c0 rcall lcd_command ldi ZL, LOW(text2*2) ldi ZH, HIGH(text2*2) rcall lcd_flash_string ;text 2 ausgeben loop: rjmp loop
-
Thread
Hex in String umwandeln
@Sebastian für Strings: [c] char cHexValue = 0xf3; CString s; s.Format("%02X, cHexValue); [/c] für Arrays: [c] char cArray[128]; char cHex[8]; sprintf(cArray, "%02X %02X %02X %02X %02X %02X %02X %02X
Hmm... Hier mein, eben aus der Hand geschüttelter, Vorschlag: [c] unsigned char hex2chrtab[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; char Hex2String(unsigned char i, char *out) { out[1] = hex2chrtab[i & 15]; out[0] = hex2chrtab
-
Thread
String einlesen und bearbeiten
UART > aufsplitten und in Variable reinschrieben so das ich es in denn RTC > schreiben kann? In C? Frag mal Google nach C-Standard-Library, alles was mit str(n) anfängt ist potentiell hilfreich. Header ist string(s?).h
:29" string[f] = '\0'; //erst mal einen sauberen C-String daraus machen wert = strtok(string, zeichen);// initialisieren und ersten Abschnitt erstellen while(wert != NULL) { empfang[t] = atoi
-
Thread
Frage in C --- Temperaturmessung
und bei mir in der Hilfe wird der befehlt wie folgt erklärt: SPRINTF() Syntax: sprintf(string, cstring, values...); Parameters: string is an array of characters. cstring is a constant string or an array of characters null terminated. Values are a list of variables separated by commas
sprintf hat nix mit WinAVR zu tun, das ist Standard-C.
-
Thread
ItoA mit Uint64_t
res = ss.str (); > std::cout << res; > }[/c] (Noch) einfacher geht es mit std::to_string(i) ... Aber C++ war ja nicht gefragt ;-)
c++ ftw schrieb im Beitrag #5932727: > In C++ gibt es jetzt to_chars und from_chars, die besser als alle > bisherigen string conversions der c/c++ lib für Mikrocontroller geeignet > sind. Ist erst
-
Thread
C#: Werte vom uC einlesen
jemand von euch einen Fehler in meinem Programm? Der Code in C# lautet: public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { string A =
= (Byte)serialPort.BytesToRead; serialPort.Read(data_received, 0, data_received_bytes); // String mit der konvertierten Zahl füllen (hier wird ein byte in einen //String gewandelt. string A = Convert.ToString((Byte)data_received[2]); Hier steht in A jetzt z. B. eine "123" statt "{".
-
Thread
Protokoll für einfache Kommunikation rs485
[c] ISR (UART0_RECEIVE_INTERRUPT) { if(uart_str_rx_ct>uart_string_len+1)uart_str_rx_ct=0; uart_str_rx[uart_str_rx_ct++] = UDR0; return; } [/c] C und anderer Code wird durch Einsatz von Leerzeihen
haben, muss man nicht mit einem "return"-Statement beenden, sie hören auch auf, wenn sie aufhören. [c] ISR (UART0_RECEIVE_INTERRUPT) { if (uart_str_rx_ct > uart_string_len + 1) uart_str_rx_ct = 0; uart_str_rx[uart_str_rx_ct++] = UDR0; } [/c]
-
Thread
C: Mehrdimensionales Array - Problem beim Initialisieren
Falls das Programm nicht gerade auf einem winzigen Mikrocontroller laufen soll, kannst du auch C++ und std::vector und std::string verwenden. C++ ist abwärtskompatibel wie C, aber seine Arrays & Strings verhalten sich so wie man es erwarten würde: [c]#include <vector> #include <string> #include
. Da die Strings aber konstant sind, kannst du ihre Inhalte nicht ändern. [c] array[1][3] = 'x'; // Fehler [/c] im Hauptprogramm, um das vierte Zeichen des zweiten Strings in ein 'x' zu ändern, geht also
-
Thread
µC+adc+usart+terminal
d|%d|%d]", adc_werte[0], adc_werte[1], adc_werte[2]); uart_puts(adc_string); } [/c] Oder ohne sprintf() (wegen den Spatzen und den Kanonen etc.): [c] char adc_string[20]; // Laenge ist nicht so wichtig int adc_werte[3]; starte_messung(); //das Array füllen lassen
if(/*fertig?*/){ uart_putc('['); for (i=0; i<3; i++){ itoa(adc_werte[i], adc_string, 10); uart_puts(adc_string); (i<2)? uart_putc('|');//gemein, ich weiss ;) } uart_putc(']'); } [/c] hth. Jörg
-
Thread
C++ Best Practice für Schleife mit Abbruch in der Mitte
} v.push_back (s); } [/c] g() [c] for ( string s; s.clear (), getline (is, s), !s.empty (); ) { v.push_back (s); } [/c] Input [code] string s = "Line 1\nLine 2"; [/code
return v; } [/c] und dann: [c] int main () { std::string s{"Line 1\nLine 2\nLine 3\n\nLine 5"}; std::istringstream iss1{s}; for (const auto& a: read_if<std::string>(iss1, [](const auto& s){return
-
Thread
Schnittstelle USB->RS232 und C++
BASCOM Seite wird dieser String auch als String empfangen, danach die einzelnen Zahlen mittels MID und VAL rausgeholt und verarbeitet.
Guten Morgen Community Hab in der Zwischnezeit mal meine Empfangsroutine in das vorgeschlagene String-mit-Interrupt-füllen umgeändert. Muss jetz noch schauen ob ich den Output von meinem C Progy entsprechend anpassen kann. Die sende routine schickt ganz offensichtlich ja das richtige los, die Empfangsroutine
-
Thread
C anfänger frage
Anzahl n der zu kopierenden Bytes angeben. Das macht z.B. Sinn wenn man einen String unbekannter Länge hat, den man in ein Array mit begrenzter Länge kopieren will. Allerdings wird der String nicht automatisch terminiert, deshalb muss man "von Hand" eine Null anfügen: strcpy(array, string, 7); // 7 bytes von string nach array kopieren array[7] = '\0'; // das 8. Byte in array auf 0 setzen
-
Thread
Mid(), Left()... in C für AVR
Gibt's in der Form in C nicht. Es kommt darauf an, was damit passieren soll. Wenn Du den Originalstring nicht mehr brauchst: char String[] = "Die Mitte rausschneiden"; // Neuer String soll "Mitte" lauten! String[9] = 0; // Leerzeichen hinter "Mitte" mit Stringende überschreiben char * Mittenstring = String + 4; // Zeigt auf das M printf(Mittenstring); // gibt "Mitte" aus. Wenn Du ihn noch brauchst, kopierst Du stattdessen mit strncpy: strncpy(Zielstring, String + 4, 5); D.h. also die
-
Thread
Definition STRING
ist und von C auch nur intern zur String-Ende-Kennung benutzt wird). Unter ganz alten Pascal Varianten gibt es z.B keine NULL als String-Ende,da steht im 1.Byte die Länge des Strings (1 Byte = 8 Bit,der Pascal-String
String. ABER: Nach C-Konvention sind solche (String-) Literale mit Strings kompatibel, das heißt statt eines strings kann auch ein solches Literal stehen, wenn es nicht verändert werden würde, Beispiel
-
Thread
LCD AVR C ROUTINEN
**************************************************************************** // Schreibt einen String auf das LCD void lcd_string(char *data) { while(*data) { lcd_data(*data); data++; } } [/c] und das die lcd.h [c] void lcd_data(unsigned char temp1);
define F_CPU 800000UL #include <avr/io.h> #include <util/delay.h> #include <lcd.h> #include <lcd.c> int main(void) lcd_init(); set_cursor(1,0); lcd_string("ZEILE 1 "); set_cursor(0,2); lcd_string("ZEILE 2 ");
-
Thread
HEX String aufschlüsseln/auswerten
Guten Tag zusammen, ich habe meinen Mikrocontroller so programmiert das er mir einen HEX String auswirft. Nun möchte ich diesen HEX String auswerten. In der 8 Byte Nachricht z.B. 01 02 03 04 05 06 07, stehen ja mehrere Werte drin die man auswerten kann und diese Werte verändern sich auch.
Guten Tag zusammen, > > ich habe meinen Mikrocontroller so programmiert das er mir einen HEX > String auswirft. wohin? LCD? UART? Wo? > Nun möchte ich diesen HEX String auswerten. Na dann mach das. Ein String ist ein String. Also erst mal eine Ansammlung von Zeichen. D.h. man könnte da
-
Thread
globaler String
Hallo, ich habe einen String Global deklariert. zB.: char STRING[100]= "HALLO"; geht ja auch so. wenn ich zur laufzeit den String ändern möchte wie geht das? zB.: STRING[]= "HALLO HILFE";=> syntax error danke an die C
RAM oder FLASH? Bsp. ... char c; While( (c=hole_zeichen_von_UART()) != '\n' ) *STRING++ = c; ... Danke - Michael
-
Thread
C: Int to String Funktion schlägt fehl.
www.mikrocontroller.net/articles/Festkommaarithmetik Die Funktion: void my_uitoa(uint32_t zahl, char* string) abgeschaut. Mein Programm sieht so aus: [c] #include "asuro.h" void my_uitoa(unsigned int zahl, unsigned char* char_p, unsigned char start) { char i; // schleifenzähler
ISO C89 kennt übrigens auch snprintf(), um Zahlen in Strings umzuwandeln: [c]int zahl = 42; char string[123]; snprintf(&string, sizeof(string), "%d", zahl);[/c]
-
Thread
Seltsames uC-Verhalten: Bugsuche
padchar ? ' ' : '0'; while(i>0) *buf++ = tmp_buf[--i]; *buf = 0; return buf; } [/c] Und benutzt habe ich sie so: [c] char string[14]; ftoa(string, value, 3, 4, 0); LCD_Write(string, 14); [/c] Das char-Array ist 14 Zeichen lang, da mein LCD-Display pro Zeile 14 Zeichen
auf insgesamt 8 Stellen Gesamtbreite: [c] longToFloatFormat(round(value*1000),string, 8, 3, '0'); [/c] Wenn Du meinst, dass das passen könnte, kann ich es Dir dementsprechend anpassen und hier posten.
-
Thread
Stromparender µC gesucht
Moin zusammen, ich habe ein Gerät, was mir alle 20 Sekunden einen String (ca. 150 Zeichen) sendet. Diesen String speichere ich momentan noch in einem Atmega88 und gebe dann einen bestimmten Wert dieses Strings auf einem LCD aus. Da das ganze auf Batteriebetrieb laufen
@ Marcel (Gast) >Zeichen) sendet. Diesen String speichere ich momentan noch in einem >Atmega88 und gebe dann einen bestimmten Wert dieses Strings auf einem >LCD aus. Warum in der Ferne schweifen, wenn das Gute liegt so nah? Siehe [[Sleep
-
Thread
Rückgabewerte von va_list auf einem Arduino Mega2560
4711); Warum schreibst Du nicht einfach C++: [c] String str = (String) "MOD RangeErr in " + ZeilenNr + ": " + MOD_ix + " " + 4711; Serial.write(str); // oder irgendeine andere Ausgabefunktion [/c] Du kannst auch auf die Variable str
vom Gleichheitszeichen direkt Deiner Ausgabefunktion übergeben - vorausgesetzt, sie kann mit einem C++-String als Argument umgehen. Notfalls, wenn Du wirklich noch mit "char *" arbeitest, musst Du den C++-String in einen C-String zurückwandeln.
-
Thread
Fehler beim ADC in meinem C-programm
Hallo Leute, Ich habe vor mir eine µC Steuerung für mein Netzteilprojekt zu bauen. Verwendet wird ein Atmega8 bei 8Mhz intern (ersmal). Da ich grad am üben mit C bin (etwas ehrfahrener Anfänger :D) hab ich mich mal an die ganze Sache mit
resa /= 100 * 4.8876; dtostrf(resa, 5, 2, stra); lcd_setcursor(0,1); lcd_string(stra); resv = volt; resv /= 1000 * 4.8876; dtostrf(resv, 5, 2, strv); lcd_setcursor(9,1); lcd_string(strv); delay = 0; } delay ++; } }[/c
-
Thread
C++ Datentypen (Definitionen) avr-gcc
Ich habe jetzt noch ein kleineres Problem. Mein C++ Compiler klopft mir auf die Finger wenn ich zum Beispiel die sprintf Funktion nutzen möchte und als String zum Beispiel den Datentyp uint8_t definiert habe. Kann man das auch irgendwie definieren,
char' als auch > `unsigned char'. *Seufz* Wenn es doch nur so wäre. Die Funktionen, die mit Strings arbeiten, benutzen [const] char*, aber die, die mit einzelnen Zeichen arbeiten, verwenden zur zusätzlichen Verwirrung int. Beispiel: int putchar(int c); Aber es kommt noch besser: Diese Funktionen
-
Thread
String dynamisch zusammensetzen
> Bei C++ gehts das über sprintf aber im gcc compiler habe ich im > Include-File string.h nicht dergleichen gefunden. sprintf ist in stdio.h deklariert und kann selbstverständlich auch aus C heraus genutzt
Hallo! In deiner "lcd.c" fehlt am Anfang ein "include <string.h>". Dann sollte der Fehler weg sein. Gruß Denny
-
Thread
port brav nach c Standard setzen
printf("direkt : %s\n", direkt.text); // (2) printf("indirekt: %s\n", indirekt->text); // (3)[/c] (1) Es wird ein Zeiger auf ein struct vom Typ struktur mit dem Namen direkt gesetzt. (2) und (3) Greifen auf den gleichen String in text zu. Einmal direkt und einmal indirekt via Zeiger. Um den
Sachen zu testen und es tut auch (freude!) Allerdings mit einer Einschränkung: Hier mal der Code: [c] #include <avr/io.h> #include <AVR/interrupt.h> #include <AVR/wdt.h> #include <util/delay.h> #include <rs232.h> #include <string.h> #include <bit_ops.h> #define BAUD 38400 //Hier wäre später
-
Thread
String enthält Gänsefüßchen
der API in einen C-Quellcode übernehmen willst. Wenn Du es in ein String "einliest", ist das Wumpe. Es sollte nur kein NULL enthalten sein.
C-Quellcode. Wenn du den Json-String zur Laufzeit über ein API einliest dann ist das nicht nötig! LG, Sebastian
-
Thread
Probleme bei selbstgebauter Uhr (DEM 16217 | STK500)
F_CPU 3686400 #endif #include <util/delay.h> #include "lcd-routines.h" volatile unsigned char c = 0, Hours = 0, Minutes = 0, Secundes = 0; char String[3] = ""; SIGNAL(TIMER0_OVF_vect) { TCNT0 = 30; if(c++ == 16) { c = 0; if(Secundes
F_CPU 3686400 #endif #include <util/delay.h> #include "lcd-routines.h" volatile unsigned char c = 0, Hours = 0, Minutes = 0, Secundes = 0; char String[3] = ""; SIGNAL(TIMER0_COMP_vect) { if(c++ == 16) { c = 0; if(Secundes++ == 59)
-
Thread
wie bekommt man die avr-gcc 4.3.2 auf den raspberry PI
prog_char mo10[] PROGMEM = "Oct"; prog_char mo11[] PROGMEM = "Nov"; prog_char mo12[] PROGMEM = "Dec"; [/c] hier meckert der Compiler unnötig über fehlende const konnte ich beheben [c] // Then set up a table to refer to your strings. //const char* const string_table[] PROGMEM = {string_0, string_1, string_2, string_3, string_4, string_5}; const char* const mo_table[] PROGMEM = { mo0, mo1, mo2, mo3, mo4, mo5, mo6, mo7, mo8, mo9, mo10, mo11, mo12 }; [/c] hier nicht, alle Arten von const versucht
-
Thread
Wie kann man eine Temperatur vergleichen und berechnen?
= "23.4557"; > > char Y[10] = "0.05"; Warum denn von hinten durch die Brust ins Auge, die Strings müssen doch vorher mal als float vorgelegen haben. Der DS18S20 liefert keine Strings, sondern Ganzzahl in 0,5°C Schritten. Nimm float, dann kannst Du auch vergleichen. [c] float temp = 23.5;
= "-20.3"; if ($string > $string2 OR $string2 > $string) { echo "String \$string ist kleiner als \$string2"; } ?> Und wo genau war jetzt das Problem? achja.. C kann das nicht.
-
Thread
Hardware Programmierung mit Python
nicht zu sein, denn Python erfreut sich trotzdem sehr großer Beliebtheit. Btw: [code] $ python3 -c "from __future__ import braces" File "<string>", line 1 SyntaxError: not a chance [/code]
: wie sehen 'multiple return values', > 'Positional and Keyword Arguments' und andere Features in C aus? Mehrere Return-Werte lassen sich zwar nicht in C, aber zumindest in C++ inzwischen gut handhaben. [c] #include <iostream> #include <tuple> #include <string> std::tuple<int, std::string
-
Thread
Wettkampf Opa(MOS6502) gegen Frischling(ATmega)
umwandlen String ausgeben
Der Opa ist in Rente, aber sein Enkel W65C02-14 würde antreten.
-
Thread
ESP32 und die "String" Funktion: Finger weg!
https://en.cppreference.com/w/c/string/byte/strcpy - https://en.cppreference.com/w/c/io/fprintf - https://learn.microsoft.com/en-us/cpp/c-runtime-library/security-enhanced-versions-of-crt-functions?view=msvc-170
#7815876: > Das ist der Maschine sowas von egal! Das ist der gleiche Quark wie mit > den > msg += String(..) + String ("Lalalaa") Gräbern, die sich in hunderten > Programmen finden und auch die Libs strotzen vor Strings. Schön, wenn jemand C und C++ (oder C# etc.) dureinanderwirft. Die String-Überladung
-
Thread
Character string
Hallo, ich versuche gerade meine erste UART anwendung in C zu erstellen und habe da ein kleines problem. wenn ich den empfangsbuffer am M16C auslese bekomme ich diesen string: 'Hallo Welt/n' das ganze würde ich gerne am angeschlossenen LCD ausgeben. wenn
, ... ); ) printf wäre da besser. Und wegen der Null-Terminierung kann man auch schreiben [c] i=0; while(der_text[i]) putchar(der_text[i++]); [/c] Fürs senden eines Strings oder Char würden für einen AVR die Funktionen z.B. so aussehen: [c] void uart_putc(char c){ while (!(UCSRA
-
Thread
Mal wieder String auf LCD
[c] char string_1[] = {"Zur" "\x9A" "ck"}; lcd_string(string_1); [/c] Peter
c] char * string_1 = "Men\232""3"; [/c]
-
Thread
String senden
beginnt: "$PSRF103,01,01,01,01*25<0>ÃA"¥%5´3£# Æ Æ Æ ¦&V lS" 3 b c c c S « 6$PSRF103,01,01,01,01*25" Ausserdem sollte der String mit CR und LF terminiert sein, dies funktioniert jedoch nicht :-(. kann mir jemand helfen?? übrigens die routine ist im file sendstrng.c
Hallo Matthias mein String "$PSRF103,01,01,01,01*25" ist nicht 0 terminert, kann ich dann dem String einfach eine 0 anhängen? Gruss Martial
-
Thread
ARM-GCC versteht den Witz nicht.
, wenn der C++-Standard an dieser Stelle expliziter wäre und entweder das Zusammenlegen oder das Verteilen der beiden den Strings zugrundeliegenden Arrays vorschriebe.
[c] #include <stdio.h> #include <stdlib.h> #include <string.h> #include <inttypes.h> int main(int argc, char* argv[]) { char *p1="100"; char *p2="0"; volatile int a
-
Thread
AVR als EPROM benutzen (C-Optimierung)
c-hater schrieb im Beitrag #4753014: > Das ist doch kompletter Unsinn. Gerade so triviales Zeug wie ein Satz > der üblichen Funktionen in C zum String-Processing ist in Asm ebenso > leicht zu behandeln wie in C. Man macht es in Asm einfach genau so, wie Schon mal versucht mit Strings und Arrays in Assembler zu arbeiten ? Und ich meine richtige Strings und Arrays, nicht etwa fixed length Strings wie
-
Thread
Auf element außerhalb array zugreifen
() statt strcpy() oder auch snprintf() statt sprintf(). usw. usf. Oder vielleicht besser gleich C++ und richtige Strings verwenden.
explizit UTF-8: [c]char str[] = " \xC2\xB0C";[/c] Damit ist dein String *garantiert und immer* utf-8 codiert. Wenn dein serielles Terminalprogramm nun iso8859-1 benutzt, wird es etwas falsches anzeigen. Außerdem eignet
-
Thread
(ARM) GCC binary size viel größer als von Realview
und CPATH bzw. LIBRARY_PATH verwenden um sie für den GCC auffindbar zu machen. Wobei die Standard-C & C++ Libraries wie <string.h> oder <vector> ja beim GCC dabei sein sollten. > Oder ist es zwingend nötig die Libs auch mit der crosstoolchain zu > übersetzen? Nein, das sollte so gehen. Habe mich
formatiere jetzt meine Strings mit sprintf(). Allerdings wird auch hier ein malloc() eingebaut :-) Wie kann ich einen String formatieren, ohne malloc() ? Also, wie kann ich das [c] sprintf(buffer, "Command entered: %s; return
-
Thread
Strings bearbeiten mit C18
Hallo Zusammen, ich würde gerne einen Sting mit dem C18 Compiler bearbeiten. Leider sind meine Stingkentnisse recht eingetrübt. Ichwill an einem String die ersten 3 bzw. 4 Zeichen entfernen, und denRest wieder abspeichern. Kann mir mal jemand auf die
Ist die Stringbearbeitung anders als in ANSI-C? Soll der String in ein neues Array geschrieben werden oder im ursprünglichen Array verbleiben? Muss der gekürzte String überhaupt abgespeichert werden?
-
Thread
String übergeben in C18
funktioniert auch ohne Probleme. Nun wollte ich mit einer weiteren FUnkition GLCD_putmsg() einen String ausgeben. [c] void GLCD_putmsg(unsigned char *Message) { while(*Message!=0) { GLCD_putchar(*Message++); } } [/c] ich hatte versucht, die Funktion mit: GLCD_putmsg("Hello
. macht es eigentlich einen Unterschied, ob die Funktion in einer anderen Datei liegt? also: main.c glcd.c
-
Thread
[C++] Wie benutze ich #include <string>
Hier ist ein paar Schritte, um die C++ String Library in deinem Eclipse mit AVR Plugin zu integrieren: Stelle sicher, dass du eine aktuelle Version von GCC (GNU Compiler Collection) verwendest, die die C++ String Library unterstützt. Füge den folgenden Code in den Header-Teil deiner .cpp-Datei ein: c #include <string> Verwende den folgenden Code in deinem Main-Code, um eine C++ String-Variable zu erstellen: java string myString = "Hallo Welt!"; Stelle sicher, dass das Compilieren des
-
Thread
C-String Position statt Zeichen
Vermutlich fehlen mir hier C-Grundkenntnisse. Wie kann ich in einem C-String wie z.B. [c] char sTxt[20] = "Hallo Welt!"; [/c] ein Zeichen einfügen, ohne dass ich das Zeichen selber in den String einfüge sondern statt beispielsweise
Und was ist, wenn dieser String in einem Funktionsaufruf eingebettet ist? [c] Funktion("Hallo Welt!"); [/c]