-
Thread
Strings schreiben und entleeren
schreibe definiere ich ein > Array mit 6 Einträgen, also 0-5 oder? ja > Und das Ende des Strings schreib ich ja als XXX[Y] = '\0' > Ist das dann ein Zeichen? Eigentlich dann ja schon oder? ja, ist noch eines, es braucht auch seinen Platz. Es kennzeichnet in C das Ende eines Strings.
Für Zeichen nimmst du einfach char. Und um es nochmal deutlich zu sagen: Um einen String zu leeren ist die beste Lösung immernoch ein einzelnes [c] uart0_command_buffer[0] = 0; [/c]
-
Thread
Variables Feld für NMEA Protokoll
stringp != ',') > { > nmea_packet[count]= string[x][y]; > count ++; > } > x++; > count++; > } > [/c] Das wird nichts.
&Ritchie Programmieren in C Allerdings: Stringverarbeitung steht und fällt damit, dass man die C-Vereinbarung "Ein C-String ist: solange Zeichen bis ein '\0' Zeichen kommt" ernst nimmt. Alles andere ist reines Arbeiten mit
-
Thread
AVR Synthesizer mit ATxmega128A1
im Flash [C] gui.c //************************************************************************* // string table //************************************************************************* const char string_000
extern PGM_P const String_Tab[]; [/C]
-
Thread
C-Problem mit Rapberry Pi
ein Variablennamen hinein, oder direkt ein Wert, aber keinen String (Zeichenkette). Das dort ist völliges Chaos -> C-Buch kaufen
C!
-
Thread
AVR64DD20 - USART stürzt bei großem Buffer ab
0x0C 0x94 0x51 0x00 - warum stoppt es nicht an dieser Stelle, ich dachte immer, in C seien Strings mit 0x00 terminiert?
wieder, also > ganz grob nach 6 s entsprechend 64 KiB bei 115200 kBd) und findet dort > 0x0C 0x94 0x51 0x00 - warum stoppt es nicht an dieser Stelle, ich dachte > immer, in C seien Strings mit 0x00 terminiert? Gute Frage.
-
Thread
C# Serial Port Write unzuverlässig
Hallo zusammen, ich habe folgendes Problem bei meiner C# Anwendung. (Ich bin blutiger Anfänger in der C# Programmierung) Anwendung: Ich möchte einen STM32 Controller über UART Befehle senden und die Antwort mit einem Windows Programm auslesen. Baudrate
für die schnellen Antworten. Ich habe es lösen können in dem ich jedes Zeichen einzeln sende: [c] private void Send_Click(object sender, EventArgs e) { int Laenge = Sendtext.Text.Length; string[] Befehl = new string[Laenge + 1]; for (int i=0; i<
-
Thread
Menü Programmierung ATMega32
Taste, Buffer, 2 ); lcd_string("Buffer"); } [/c] Was mache ich noch falsch??? Die Augabe im LCD ist "Buffer" Danke dir schon mal. René
Es muss heißen: [c]lcd_string(Buffer);[/c] Du willst ja nicht die Zeichenkette "Buffer" ausgeben sondern den Inhalt der Variable Buffer.
-
Thread
I2CLCD Library für HD44780 LCDs
@ Sarah S. (magicsarah) >variable 'string_flash' must be const in order to be put into read-only >section by means of '__attribute__((progmem))' Da ist der neue avr-gcc scheinbar etwas pingelig. ALso so. [c] const char string_flash[
define LCD_LIGHT_PIN 12 /**< LCD backlight is connected to P3 on the PCF8574, low active */ [/c] - Die Adresse wie im Programmcode ist mit der Eingestellten Adresse des i2C Adapters identisch 4E. - main.c die Zeile char string_flash[] PROGMEM = "Hello Flash!"; in [c] char string_flash[]
-
Thread
µC zu schnell bzw. USART zu langsam
> Warum zwei Bytes? Es sind ASCII-Strings in C, da kann man das alles > standardkonform machen, 0x00 = Stringende. Ich denke er will alle möglichen Geräte dranmachen. Da geht gar kein Endzeichen, weil die geräte könnten ja auch binäre
@ Uwe (Gast) >> Warum zwei Bytes? Es sind ASCII-Strings in C, da kann man das alles >> standardkonform machen, 0x00 = Stringende. >Ich denke er will alle möglichen Geräte dranmachen. Da geht gar kein >Endzeichen, weil die geräte könnten ja auch binäre
-
Thread
öffnen von Office Anwendungen über C-Programm
Was Dir das Hingerotze meines Vorposters sagen will: Man kann in C nicht einfach so Strings in einer if-Abfrage vergleichen. In C++ geht das, aber nicht in normalem C. Du musst die Strings mit dem Befehl strcmp vergleichen, Beispiele solltest Du finden, wenn Du googlest
SL schrieb im Beitrag #1864047: > Noch ein Hinweis: > Unabhängig davon, dass man Strings nicht einfach vergleichen kann, Da es in C keinen String-Typ gibt, gibt es auch keine Möglichkeit, zwei Strings mit den eingebauen Operatoren zu vergleichen. > und eine Zuweisung ist immer wahr
-
Thread
Problem mit String und Pointer
ein 721 Char breites Array (sms_buffer[721])geschrieben. An der letzten Stelle steht '\0' um den String abzuschließen - standard. [c] gsm_read_sms(); [/c] Die Daten stehen nun im Array. Ich habe ein Unterprogramm, welches die Daten verarbeitet, in dieses Unterprogramm wird ein String übergeben
(pString, "Hallo "); pString += sprintf(pString, "Welt"); printf(string); [/c] Anmerkung: Ev. die n-variante vom sprintf (snprintf) verwenden, auf die Gefahr eines Überlaufes hin. VG, /th.
-
Thread
[C++] System::String^ in char array umwandeln
Anfangsposition und Schlussposition an) und wenn mich nicht alles täusch sieht das etwa so aus: [c] String Jahr; String Jahr_msb; String Jahr_lsb; Jahr_msb = Jahr.SubString(1,2); Jahr_lsb = Jahr.SubString(3,4); [/c] Jetzt ist meine Frage, gibts das auch (oder etwas dass das gleiche Bewirkt
System::String^ ist vieles, aber ganz sicher kein C++. In C++ gibt es den Standard-Stringcontainer der STL aus <string>. Der besitzt eine Methode c_str(), die einen Zeiger auf den internen Zeichenvektor zurückgiebt
-
Thread
String zerlegen
Eventuell auch so: [c] uint8_t i; char string[42]="IP=192.168.2.32:2000"; char *s=string; for(i=0;s[i]!=':';i++); s[i]='\0'; s+=3; [/c]
macht? > [c] > while( *source != '=' ) // Anfang suchen > source++; > [/c] und jetzt überleg mal, was wohl passiert, wenn ich deinem Code diesen String "abcdefghijkl" (also einen ohne '
-
Thread
Merkwürdiger php-Fehler
. Mag ja sein. Allerdings ist die Bezeichnung 'Parser' etwas sehr hoch gegriffen, wenn er in [c] // $this->Lexer->addSpecialPattern('<smallcaps.*?>', $mode, 'plugin_smallcaps_syntax'); [/c] ein in einem String stehendes ?> als sein Ende Zeichen erkennt, das zu allem Überfluss auch noch auskommentiert
und beim "phph-ende" Zeichen beendet... > Fertig. So wirds wahrscheinlich sein. Aber selbst der C-Präprozessor, der nun wirklich nicht so wahnsinnig viel von C versteht, ist immerhin soweit, dass er aus Strings die Nase raushält. Auf jeden Fall hab ich jetzt gute Argumente, wenn ich in die nächste
-
Thread
AD- Wandler ATMEGA32 in C
5 mal > und teilst dann durch 4, > sehe ich das richtig. Nein, das siehst Du falsch! Da steht [c] for(i = 0; i < 4; i++) { ^^^^ //... } [/c] also wird i höchstens 3.
Beispiel: Ausgangswert 158. itoa macht daraus den String {'1', '5', '8', '\0'}. Du musst daraus jetzt den String {' ', '1', '5', '8', '\0'} machen, damit Du für die Ausgabe auf vier Stellen kommst. Das sollte in C recht simpel machbar sein.
-
Thread
LCD EA W204B-NLW
// Die Ausgabemarke in die 4te Zeile setzen lcd_setcursor( 0, 0 ); // Text als String ausgeben lcd_string("444 vierte zeile 444"); [/c] ergibt [code] zeile 1: 111 erste zeile 111 zeile 2: 222 zweite zeile 222 zeile 3: 333 dritte zeile 333 zeile 4: 444 vierte zeile 444 [/code] aber [c] // Die Ausgabemarke in die 1te Zeile setzen lcd_setcursor( 0, 0 ); // Text als String ausgeben lcd_string("111 erste zeile 111"); // Die Ausgabemarke in die 2te Zeile setzen lcd_setcursor
-
Thread
Wie oft kommt string 2 in string1 vor?
Hallo Leute, ich lerne gerade für eine Klausur und soll zwecks einer Übung überprüfen, wie oft string 2 in string 1 vorkommt. Dazu habe ich folgendes Programm geschrieben: [c] /* 8. Schreiben Sie eine Funktion, die feststellt, wie oft ein String in einem anderen enthalten ist.*/ #define _CRT_SECURE_NO_WARNINGS
[c] #include <stdio.h> #include <stdlib.h> #include <string.h> int substrcmp(char* string, char* substring) { int i; for (i=0; i<strlen(substring); i++) if (string[i] != substring[i]) return
-
Thread
Arduino und die String Klasse
c = SoftSerial.readStringUntil('\n'); CheckValidFix(&c); [/c]
schrieb im Beitrag #6556996: > Und wie würde das für meine Routine ausschauen mit ::Reserve? [c] // global String buffer[10]; // in setup() for(String &s:buffer) s.reserve(100); [/c]
-
Thread
FT232 String senden/empfangen
) { while( *string ) sendCharacter( *string++ ); } [/C] wenn du nicht mit ollen C-style Strings rummachen willst (was ich verstehen kann), musst du dir halt was Gleichwertiges mit deiner favorisierten String-Klasse
> void sendString( const char* string ) > { > while( *string ) > sendCharacter( *string++ ); > } > > wenn du nicht mit ollen C-style Strings rummachen willst (was ich > verstehen kann), musst du dir halt
-
Thread
C#:Wie Nachricht vom Mikrocontroller über dem Com-Port empfangen
an einen String ran reichen. Obwohl der String in c# eine deutlich komplexere Strucktur ist als ein Array mit chars... List<char> hat die nette Methote "Add(char)" mit der man nach belieben chars zur Liste hinzufügen
List<char> und der Type kann kein anderen Type aufnehmen. > Ein Array in der Form char[] würde in c# am nächsten an einen String ran > reichen. Obwohl der String in c# eine deutlich komplexere Strucktur ist > als ein Array mit chars... Das wäre schneller, allerdings nicht dynamisch. > List<char
-
Thread
C++ Problem mit Threadsicherheit und std::queue<std::string>
Kernel 3.18.14/4.0.4 Compiler: GCC 4.9.2/5.1.0 Einschraenkungen: - *Kein* Boost - muss mit -std=c++98 compilieren [c] #include <queue> #include <string> #include <pthread.h> class FooBar { public: FooBar(); ~FooBar(); void Run(void); void* Bar(void); void
synchronisierten, nicht limitierten Queue: Nach ein bisschen diskussion konnte ich erreichen das ich C++11 nutzen darf, somit hab ich dein Beispiel mal ausprobiert. Es fuehrt zu einem SegFault wenn man die Queue mit std::string benutzt. Warum? ganz einfach: [c] T pop() { std::unique_lock
-
Thread
C-Lehrbuch aus dem Rheinwerk-Verlag schlecht? Alternative?
auf den Eingabepuffer zurück. Ändert man das Beispiel so (die "eingabe"-Funktion bleibt gleich!): [c]/* ptr13.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 255 char *eingabe(char *str) { char input[MAX]; printf("Bitte \"%s\" eingeben: ",str); fgets
Rolf M. schrieb im Beitrag #5311079: > Kann es nicht, da strtok() den übergebenen String modifiziert. Achja. In C++ darf man String-Literale nicht einfach überschreiben, hab grad nich im Kopf wie das bei C ist...
-
Thread
5 Zeiten mit ICP messen -> Problem mit den Timerwerten (ATmega8 und C)
TOIE1)); // Makro für Capture-Interrupt ausschalten char *Stopp = "#"; // Stoppzeichen für den String char string[20]; // Array 'string' mit 20 Zeichen festlegen volatile unsigned int Messung[5]; volatile unsigned int Ergebnis; volatile unsigned int Wcapture; volatile unsigned int Wcapturealt
TOIE1)); // Makro für Capture-Interrupt ausschalten char *Stop = "#"; // Stoppzeichen für den String char string[20]; // Array 'string' mit 20 Zeichen festlegen volatile uint8_t zeichen; // zeichen als unsigned integer volatile double Ergebnis = 0.0; // Ergebnis als global deklarieren
-
Thread
Atmega644 UART - Komische Ausgabe
[c] /* * Transmit string from program memory to UART */ uart_puts_P("String stored in FLASH\n"); [/c] Das ist verkehrt, genauso wie alle nachfolgenden Aufrufe von uart_puts_P
/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F
-
Thread
Pollin RFID Entwicklungsboard
As String * 5 '"Wert" als String mit 5 Hexwerten definieren[/c] ist falsch und muss heißen : [c] Dim Wert As String * 10'"Wert" als String mit 5 Hexwerten definieren[/c] denn wenn man 5 Byte als Hex darstellt braucht man 10 Zeichen durch das zu kurze String, für "Wert" werden evtl. weiter eingefügte Variablen nach „Wert“ Überschrieben 4. Im Programm fehlen Werte für: hwstack, swstack und framesize [c] $hwstack = 16 $
-
Thread
Große Datenmenge übertragen µC SD-Karte -> PC
Hi, ich würde gerne wissen wie man am geschicktesten ohne großen Ram/Puffer Daten einer SD-Karte (Fatfs) über eine UART an einen PC überträgt (UART in meinem Fall => Virtual-ComPort USB). Es geht um einen STM32 Temperatur und Feuchtigkeitslogger welcher die Daten in Tages-Dateien speichert YYmmdd.log Alle 24std gibts eine neue Datei. Ich habe viele einzelne Dateien welche aufgezeichnet werden, diese sind so ca. 30KB pro Stück groß. Wie macht man das nun ? Überträgt man immer Packetweise die Datei rüber? Oder gibts eine Methode wo ich nur die größe der Datei angebe und mein Transerfunktion
-
Thread
RS232 über C++ auslesen Gesperrt
auch mal ne Frage dazu, will aber nicht den 100. Thread dazu beginnen :-) Mein PC soll via RS232C mit einem Gerät kommunizieren. Beispielsweise schicke ich den String "R0.29.0 + <CR>". Das Teil antwortet mit "<CR><LF>V29.1234<CR<>LF> Problem: Via Hyperterminal funzt das alles (9600,n,8,1, kein
jeweiligen Ausgang auf 1 (setzen) und 0 (rücksätzen) ändern kann. Gibts wircklich nix vergleichbares für C/C++?
-
Thread
Strings im Flash
der Breite der Zeichen also z.b. 8 und steht damit an stelle des Zeichens... z.b. für L: L = $4C ldi R16, $4C ;L in R16 sbci R16, $41 ;danach R16 = $0B = 11 ldi R17, 8 muls R16, R17 ;multipliziere. Ergebnis in R1 und R0 mov ZH, R1 mov ZL, R0 rcall Lcd_out So musste das, denk ich,
Ähhm, sorry, kann kein C programmieren... gibts so was auch in Assembler? Ansonstn muss ich's halt selber errechnen und programmieren...
-
Thread
ESP32 Arduino String Funktion - wo liegt der Fehler?
("UBattAvg = " + String(AvgValues.UBattAvg) + "V") [/c]
0' Zeichen enthalten. [c] String s("test"); s +='\0'; String s2 = s.substring(2); Serial.println(s2.length()); [/c] liefert Länge = 3, die 0x00 ist im String s und Substring s2 enthalten.
-
Thread
Variable in einem String
kannst. Edit: Ich seh grad, du hast dir vom Original auch 2 Funktionen [C] void my_uitoa(uint32_t zahl, char* string) void my_round(char* string, uint8_t digit) [/C] mitkopiert. Mit denen geht das. my_uitoa ist als Ersatz für itoa gedacht. Die sind zum Zusammenspiel
Zusammenspiel mit deiner my_print_LCD gedacht. Aber Achtung [C] void my_uitoa(uint32_t zahl, char* string) { int8_t i; string[10]='\0'; for(i=9; i>=0; i--) { string[i]=(zahl % 10) +'0'; zahl /= 10; } } [/c] will ganz offensichtlich
-
Thread
C-Funktion- Übergabe char vers. constant char
string) { char *p = string; while(*p != (0x00)){p++;}; return p - string; } [/c] Problem = 2 Warnungen: Der compiler meckert natürlich an, das das 'constant char' von *string nicht dem Wert
schlimmer: Welchen Teil hast du nichtg verstanden, warum eine Modifikation der Funktion strlength auf [c] char strlength(const char *string) /* ***** */ { char *p = string; while(*p != (0x00)){p++;}; return p - string; } [/c] die 1. Warnung beseitigen würde?
-
Thread
C-Funktion call by reference: beliebiger Datentyp
>Natürlich enthält ein string nur einen Zeiger auf die Daten. Ein >normaler C-String ist nunmal ein char*, also ein normaler Zeiger. Ich rede nicht von C-Strings, sondern von der Klasse string (bzw. der Templateklasse basic_string
> Ich rede nicht von C-Strings, sondern von der Klasse string (bzw. der > Templateklasse basic_string) der C++ Library. Ich auch. Ok, meine Aussage war vielleicht etwas missverständlich. Einige string-Implementationen
-
Thread
Strings dauerhaft speichern
habe ich strings immer so deklariert unsigned char string[10];
folgendes Vorschlagen. Du verwendest normale Variablen (also im RAM). An die Stromversorgung des uC hängst du einen Elko hin und einen Portpin hängst du vor den Elko. Bricht die Spannung zusammen (Stromausfall) registriert dies der uC und schreibt mit Hilfe der Energie des Elkos die Strings in den
-
Thread
Neues Terminal-Programm für Windows
eine Funktion, die ich in HTerm nicht gefunden habe und zwar: NEW LINE AFTER TIMEOUT Es gibt µC-Anwendungen die ohne Stoppzeichen Daten senden die unterschiedlich groß sind vobei jedes Byte im String bzw. Paket jeden Wert haben kann. Wenn z.B. in einer Sekunde 3 Pakete unterschiedlicher Länge
getestet und bin begeistert!!! Es funktioniert bei mir mit kurzen Pausen von 15ms zwichen den vom µC gesendeten Strings problemlos!!! Sollte ich einen Bug feststellen, dann lass ich es Dich wissen. Vielen Dank für Deine Arbeit!!! MfG Ak Tronik
-
Thread
[C] Float mit scanf einlesen
wenn Kaufleute meinen, sie müssen ihre Tausenderpunkte auch noch eingeben Wir machens so: Als String einlesen Im String ein eventuelles , durch einen . ersetzen sscanf zum Frass vorwerfen.
String ist oder ob irgendein anderes nichtnumerisches Zeichen in dem String enthalten ist.
-
Thread
String aneinander reihen
, string); strcat(buf, " U/min "); strcat(buf, " Spannung: "); itoa(Zahl2, string, 10); strcat(buf, string); strcat(buf, "Volt "); [/c] (die Formatierung der Leerzeichen etc. solltest
(buf, string); strcat_P(buf, PSTR(" U/min ")); strcat_P(buf, PSTR(" Spannung: ")); itoa(Zahl2, string, 10); strcat(buf, string); strcat_P(buf, PSTR("Volt ")); [/c] Für Deine zur Laufzeit
-
Thread
C Informatikprojekt mit diversen Unterprogrammen und Hauptmenü
magische Nummern. Das zerstört die Lesbarkeit komplett. printf("Der %d. Buchstabe ist ein %c\n", i+1, *p_such); Was bedeutet "+1"? c. Warum sind die Strings statisch? char eingabe[20]; //Buchstabensuchspiel-Eingabewort char suche; //Buchstabensuchspiel-Suchbuchstabe
Du hast C-Strings nicht verstanden. Ein C-String ist beim Zeichen mit dem Wert 0 zu Ende ('\0') Du überprüfst alle Zeichen vom Array. Das können auch mehr sein als du eingegeben hast. Das ist falsch.
-
Thread
Von C++ auf Java
Je nachdem, was du machen willst: [c]Date now = new Date();[/c] Aktueller ist allerdings Calendar: [c]Calendar rightNow = Calendar.getInstance();[/c] http://download.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html
jetzt mit Stunde Minute uns sekunde gemacht und jetzt möchte ich daraus eine UHR machen: Calendar c = Calendar.getInstance(); stunde = c.get(Calendar.HOUR_OF_DAY); minute= c.get(Calendar.MINUTE); sekunde= c.get(Calendar.SECOND); jLabel2.setText(String.valueOf(stunde)); jLabel3.setText(String.valueOf
-
Thread
GPS Empfänger an ATmega8
kmh,kmh_string,10); //kmh auf LCD ausgeben lcd_string(kmh_string); } } } [/c] Vielleicht fällt ja jemandem etwas auf, was ich noch verbessern kann. Wie man das GPS- Modul auf 9600 Baud einstellen kann,
; } Buffer[counter++] = c; } toLCD(Buffer); [/c] Danach kannst du den String in Ruhe zerlegen :)
-
Thread
Verwirrung beim C++ Variablen zusammenfügen
Und jetzt noch die einfache intuitive Methode: [c]float temperature1 = 3.14, temperature2 = 2.7; std::string query = std::string("INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES (") + std::to_string (temperature1) + "', '" + std::to_string (temperature2) + "')"; std::cout << query;[/c]
-
Thread
char* pointer(Zeiger) einem String zuweisen, merkwürdiges Verhalten
[c] char* s=string; [/c] damit erzeugst du die pointer-Variable s und weist ihr "gleichzeitig" den Wert von string zu (etwas verkürzt geschrieben). Wenn du diese beiden Befehle trennst, klappt es auch: [c] char* s; s=string; [/c]
-
Thread
VB Serial Port Datenempfang nicht komplett
schön und gut. Aber der Event wird ausgelöst, sobald das erste Zeichen im PC eintrudelt. Da hat dein µC den Return noch gar nicht weggeschickt. Du scheinst in der Annahme zu leben, dass irgendwie instantan im PC der komplette String "89|25|01|01\r\n" auftaucht, sobald du auf µC Seite einen > usart_writePC
im DataReceived-Aufruf dabei ist ;D Ungetesteter (keine VB.net-Kenntnisse) Änderungsvorschlag: [c] Dim SerialInput As String Dim eineZeile As String Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1
-
Thread
Frage zu String einlesen
denn deine Funktion zum Einzelzeichenlesen in der SD-Library? Ich nehme mal an, die heißt getc [C] int gets( char * buffer, int n, int fd ) { char c = getc( fd ); int charsRead = 0; while( c != '\n' && n > 0 ) { *buffer++ = c; charsRead++; c = getc( fd ); } *buffer
charsRead++; readChar = file_getc(); } *buf = '\0'; return charsRead; } [/c]
-
Thread
C/C++ Socket Programmierung
jedoch den Fehler, dass keine Verbindung aufgebaut werden kann. Der Fehler muss also in der Methode [c]bool TcpSocket::connectTo(std::string host, int port) throw(TcpSocketException);[/c] liegen. In den betreffenden Zeilen [c] if( connect(this->sock, (struct sockaddr*) &addr, sizeof(addr)) =
In Zeile 12: [c]sock = socket(PF_INET, SOCK_STREAM, 0);[/c] Man soll angeblich korrekt AF_INET schreiben, aber das ist wohl praktisch immer egal.
-
Thread
[C] uint8_t und spriftf()
Mahlzeit, Ich Programmiere einen STM32 Controller in STM CubeIDE. Die Sprache ist C. Welchen Datentyp verwendet ihr für Strings? ich würde uint8_t[] nehmen.. uint8_t s[50]; sprintf(s,"Hallo "); Wirft mir folgende Warning: pointer targets in passing argument 1 of 'sprintf' differ
Marten K. schrieb im Beitrag #6366673: > weil ich zB eine Methode habe die strings in uint8_t erwartet ... Die erwartet einen Rohdaten-Puffer. Da ist ein Zeiger auf uint8_t ja passend. Es muss ja kein String sein, den du überträgst. Was man also macht ist, dass man es an der
-
Thread
c# Reguläre Ausdrücke
Ich habe folgendes: txtBeschreibung.Text.Replace(".", "").Replace(",", "").Replace(":", "").Replace(";", "") Wie läßt sich das per RegExp anders ausdrücken?
-
Thread
Linux und (immer noch) C
TriHexagon schrieb im Beitrag #4040703: > - in C gibt es kaum Verschleierung (klassisches Beispiel in C++: wie > oft wird bei der Stringverarbeitung Speicher alloziert?) Wenn ich in C eine Bibliothek schreibe, die Strings dynamisch verwaltet, hast
be stucki schrieb im Beitrag #4041166: > TriHexagon schrieb: >> - in C gibt es kaum Verschleierung (klassisches Beispiel in C++: wie >> oft wird bei der Stringverarbeitung Speicher alloziert?) > Wenn ich in C eine Bibliothek schreibe, die Strings dynamisch verwaltet,
-
Thread
String mit Steuerzeichen
Das geht m.M. gar nicht. In C ist 0x00 als String-Ende-Zeichen definiert. Da wirst Du wohl oder übel mit 4 Ausgabe-Befehlen arbeiten müssen: 1. Text, dann 0x00, dann 2. Text, dann 0x00 (sagt einer, der nur rudimentäre C-Kenntnisse
Wenn ich \r in den String schreibe gibt er mir 5C 72 aus. Das hab ich alles schon probiert.Liegt wahrscheinlich an den " vom String.Aber die Sache mit dem Sonderzeichen klappt hervorragend. Vielen Dank euch allen für die schnelle
-
Thread
[C] Char Array an Funktion übergeben
strcpy(buffer, "$"); strcat(buffer, message); strcat(buffer, "*"); char checksum_string[2]; sprintf(checksum_string, "%02X", checksum); strcat(buffer, checksum_string); strcat(buffer, "\r\n"); uart_puts(buffer); }[/c] Das ganze funktioniert nun, wenn ich es mit
ausßerdem ist ist überhaupt nicht notwendig den string komplett zusammenzubauen, kostet nur zeit uns stack. [c] void send_uart_message(char message[]) { char checksum = calculate_checksum(message); char checksum_string[3]; sprintf(checksum_string
-
Thread
Keine änderung des BLE Namens des esp32c3
RXCallbacks : public BLECharacteristicCallbacks { void onWrite(BLECharacteristic *pChar) { String received = pChar->getValue().c_str(); received.trim(); Test=received; //wird in loop bearbeitet if (received == "ON") { digitalWrite(LED_PIN, HIGH); }
->start(); }//setup [/c] Wenn es dann immer noch nicht geht sind die Strings zu lang. In dem Fall packt man das Advertising in die ScanResponse. [c] void setup() { ... pAdvertising->enableScanResponse(true); pAdvertising