-
Thread
c++ Laufzeitsenken finden/vermeiden erster Teil
Liste 20 Elemente angelegen und recht oft suchen. Dabei habe ich eine rudimentäre Verkettung als quasi c-funktion mit der stl Lösung 'map' vergleichen. Dabei dann auch noch eine map<string,int> und eine map<char*, int> (Auf die STL libraries bin ich recht schnell gestoßen und bin an sich begeistert - wenn
20 Elemente angelegen und recht oft > suchen. Dabei habe ich eine rudimentäre Verkettung als quasi c-funktion > mit der stl Lösung 'map' vergleichen. und hier vergleichst du dann schon Äpfel mit Birnen. > Dabei dann auch noch eine > map<string,int> und eine map<char*, int> Das sind aber auch
-
Thread
Hex zu String Zuweisung: Funktion in C?
}; // 0xFA01 [/c] Ich kann ja nicht einfach schreiben: [c]const unsigned char string[] = {"FA01"};[/c] das führt nämlich zu einem falschen CRC-Wert. Ich wollte daher das Array test_value[16] in ein Hexwert umwandeln
. Da greift kein strlen. Ein C-String ist definitionsgemäss eine Abfolge von Bytes, an deren Ende ein Byte mit dem Wert 0x00 steht. D.h. für alle String Funktionen ist der String mit dem ersten 0x00 zu Ende. Egal wie lange das Array
-
Thread
Reloadwertberechnung C167
Dann schreiben dir deine Daten evt. die Steuerleitungen kaputt. Vielleicht geht es damit: [c] writeLCDString("Hallo Welt"); void writeLCDString (char* string) { LCDRS = 1; LCDRW= 0; waitT(50); while(*string!= '\0') { LCDE =1; waitT(50); // P2.0 bis 2.7 auf 0 und dann Daten setzen P2 = (P2 & 0xFF00) | *string; waitT(50); LCDE =0; waitT(196); data_string++; } } [/c]
-
Thread
EDIPTFT70 I2C, ich kriege es einfach nicht hin
[c] #include <avr/stdio.h> #include <avr/string.h> void SendDisplayData(unsigned char *buf) { unsigned int len = strlen(buf); unsigned char i, bcc; i2c_start(); i2c_send(11011110); // Addr
Natürlich wird man sich dann eine Funktion schreiben (bzw. aus dem Datenblatt übernehmen), die den Teil "String Ausgabe im Small Protokoll" übernimmt und dazu die Länge bzw. die Prüfsumme bestimmt und die dann aufrufen [c] i2c_start(); i2c_send( 0xDE ); i2c_send_data( "#DL" ); i2c_stop();
-
Thread
Problem mit c Programm ATmega32
} } [/c] Kommt am Terminal nur -0.000 an. Meine rpm_to_string Funktion und meine UART_send_blocking_string Funktion funktioniert ja. Variablen Definitionen (global): [c] volatile uint8_t motorDirection
== 1) { rpm_to_string(rpmString,rpmAverage,motor.direction); UART_send_blocking_string(rpmString); sendRpm = 0; } } } [/c] Deswegen denke ich das der Fehler nicht am volatile
-
Thread
C# Programm zum Steuern eines Sensornetzwerks
aber nicht auskennt können komische Fehler entstehen. Ein Beispiel für die tückischen Referenzen: [c] class Program { static void Main(string[] args) { A a1 = new A(13); A a2 = a1; a1.I = 7; System.Console.WriteLine(a1.I + "," + a2.I); a2 = new
Dein Ansatz stimmt. Es müsste korrekt so aussehen: [c] struct sensor { int pos; int DevID; int MID; } Dictionary<int, sensor> Nodes; [/c] Man schreibt nur den Typ in die <> Klammern [pre]nimm [c]...[/c] für code[/pre]
-
Thread
Vi Editor ausgestorben?
und ggf. nachfolgender oder vorangehender Whitespace gelöscht: [c] person =; [/c] Möchtest du den Inhalt des Strings nicht löschen, sondern ändern, geht das mit 'c' statt 'd' am Anfang, also mit 'ci"' ('c' = "change"). Damit wird der Inhalt wie bei 'di"' gelöscht
oder vorangehender Whitespace > gelöscht: > person =; Nö. Was geht ist yy um ein paar dieser String Zeilen zu kopieren und mit P einzufügen. Aber euer Befehl geht nicht, weder di" noch da". > Möchtest du den Inhalt des Strings nicht löschen, sondern ändern, geht > das mit 'c' statt 'd' am
-
Thread
C89 - libconfig.h
wie zb C-Strings Bescheid zu wissen.
, > über grundlegende C-Konzepte, wie zb C-Strings Bescheid zu wissen. Jaaa, hatte ich auch schon überlegt. Würdest Du was empfehlen? Grüsse Henrik!
-
Thread
[C#] Variable wird nicht übernommen
mit welchem ich gerade nicht weiter komme: Ich habe ein Programm welches mir Daten an einen µC sendet und wieder empfängt. Das funktioniert eigentlich auch ganz gut - bis auf den Umstand das eine Variable aus dem Receive Handler nicht übernommen wird: [c] //.. volatile string varHardwareVersion
//Variable set Gauge.mGetHardwareVersion(); //Set Command to µC ComSend(Gauge.mByteToSend); //Send Command to µC Gauge.SetupGauge(0x02); //Reset µC to default f.mVersionString = varHardwareVersion
-
Thread
Frage zu Vektoren und Strings in C++
sowie die Länge jedes einzelnen Strings (Anzahl der Zeichen) in Reihenfolge der Parameter an. Mein Code schaut so aus: [c]#include <iostream> #include <string> #include <vector> using std::cout; using std::cin; using std::endl
} cin >> count; // Nur damit das Fenster nach der Ausführung in CMD offen bleibt } [/c] Jetzt kenn ich aus C noch Funktionen wie strlen oder sizeof. Nur funktioniert das in C++ nicht so recht. strlen erwartet einen Pointer auf die Strings, jedoch ist argument_vector.at(count) kein
-
Thread
C# String in Variablennamen konvertieren
suche ich nach so einer Lösung: [c] String[] XXX = new String[99]; for(int i=0;i<=100;i++) { PictureBox Convert.StringToVariablename( XXX[i] ) = new PictureBox(); ... }[/c] Kann man aus einem String einen Variablennamen
Marvin C. schrieb im Beitrag #2635772: > Aber gibt es prinzipiell eine Möglichkeit einen Variablennamen aus einem > String zu erzeugen? Nein, weil es garkeine Variablennamen zur Laufzeit gibt. Der Compiler
-
Thread
C: String auf Double überprüfen
c-bastler schrieb im Beitrag #2422327: > Wenn der String etwas anderes als Zahlen und ein Punkt oder Komma > enthält ist was faul. Nimm eine Schleife und isdigit() (Header musst du > selbst nachgucken
DirkB schrieb im Beitrag #2422478: > c-bastler schrieb im Beitrag #2422327: >> Wenn der String etwas anderes als Zahlen und ein Punkt oder Komma >> enthält ist was faul. Nimm eine Schleife und isdigit() (Header musst du >> selbst nachgucken
-
Thread
Arduino Mega hängt wenn String nicht global definiert ist
Bob A. schrieb im Beitrag #6305685: > Erklären kann ich es mir nur so halb: Dadurch dass die Strings lokal > waren hat das das Speichermanagement durcheinander gebracht und der µC > hing irgendwo fest. An den lokalen Strings liegt das sicher nicht. Du hattest wahrscheinlich einen Speicherueberlauf
Welche "string definition" ist denn die eine, um die es geht? Programmcode gehört in *.c Dateien, nicht in *.h Dateien. [c] unsigned int uiSensor01Intensity = 0.0; unsigned int uiSensor01DiodeTemperature
-
Thread
C-Code Zwei Uhrzeiten, berechnung Differenz, falsche Werte
mit den time-Funktionen, die in C enthalten sind, jeweils umrechnen in die Unix-Zeit (z.B. mktime). Dann die beiden subtrahieren und die Differenz einfach zurückwandeln z.B. in einen String (z.B. ctime oder asctime). einzige Voraussetzung
also habe gerade mal mit dem Debugger durchgeschaut. Hierbei habe ich erkannt das er in meinem String am Anfang die zahlen 51 und 52 jeweils drin stehen hat und beim beschreiben der Strings es nicht annimmt. Was könnte der fehler an meinem scanf_s sein? Das habe ich noch verändert: [c]char uhrzeit1
-
Thread
[C++] Vermeidung von redudanten Daten
Bei einem aktuellen Projekt kommt folgender Code (stark vereinfacht und gekürzt) zum Einsatz: [c] #include <string> #include <vector> class Attribute { public: Attribute(const std::string& name) : name(name) { } const std::string name; }; class FP_Attribute
get_attributes() const { return attributes; } private: attributes_t attributes; }; [/c] Dieser dient dazu, auf einfache Art und Weise viele verschiedene Klassen mit unterschiedlichen Attributen anzulegen, wie z.B. im nachfolgenden Beispiel: [c] class Car : public Attribute_Set
-
Thread
Ping mit Visual Studio C#
alles ziemlich strange. Was GENAU willst du denn erreichen? Spontan würde mir so was einfallen: [c] class Pinger { private readonly List<Ping> mActivePings = new List<Ping>(); public void SendPings(string[] adresses) { foreach (var address in adresses) {
nicht im Ping Objekt, oder? Vielleicht noch mal mein Beispiel von oben, ein bisschen angepasst: [c] class Pinger { private readonly Dictionary<Ping, string> mActivePings = new Dictionary<Ping, string>(); public void SendPings(string[] adresses) { foreach (var address
-
Thread
[C#] Klasse - Indexer
Hallo zusammen Ich habe folgenden Code: [c] namespace Config { public class AppConfig : Object { private string[] user = new string[8]; public string this[int i] { get { return user[i]; }
. Er wird aus einer XML-Datei ausgelesen. Das ganze wird in einem ProbertyGridEx verwendet: [c]property.Add("User", ref me, string Array (this[0]), false, ...);[/c] Beim eintrag "string Array" steht sonst der String Name. [c] namespace Config { public class AppConfig : Object {
-
Thread
C - Banknoten Check vereinfachen möglich?
Algorithmus, um einen Buchstaben in einen numerischen Wert umzuwandeln ist ziemlich umständlich. Statt [c] first[0] = toupper(string[0]); first[1] = 0; f_position = strcspn(lookup, first); [/c] genügt hier ein [c] f_position = toupper(string[0]) - '@'; [/c]
. Die sagen: "Character to be checked, casted to an int, or EOF." Und haben auch ein Beispiel: [c] int i=0; char str[]="Test String.\n"; char c; while (str[i]) { c=str[i]; if (isupper(c)) c=tolower(c); putchar (c); i++; } [/c]
-
Thread
Arduino/ C# RGB LED Steuerung
Programmierwelt, also hab ein wenig nachsehen falls ich es nicht direkt verstehe. Ich versuche mit einem C# Programm eine einzelne RGB LED anzusteuern. Das C# Programm läuft soweit und übermittelt auch den String an den Arduino, aber ich schaffe es nicht diesen zu verarbeiten. Der String kann folgendermaßen
Jannick G. schrieb im Beitrag #4916987: > Ich versuche mit einem C# Programm eine einzelne RGB LED anzusteuern. > Das C# Programm läuft soweit und übermittelt auch den String an den > Arduino, aber ich schaffe es nicht diesen zu verarbeiten. Der String > kann
-
Thread
[C++] Array verliert Werte
L])[0] = 7; [/c] belege und es gleich in der nächsten Zeile auslese, funktioniert es ohne Probleme. Greife ich aber auf diesen Zeiger später außerhalb der Methode void readConfigFile(string configFile) zu (z.B. per
quantity::ofTypeFp q); fp_type get(quantity::ofTypeFp q, size_t index); void readConfigFile(string configFile); private: void *quantities[quantity::ofTypeIntCount + quantity::ofTypeFpCount]; }; #endif // INOUT_H [/c] inout.cpp [c] #include "inout.h" #include <boost/lexical_cast.hpp
-
Thread
strtok? WTF! Wer benutzt das?
irgendjemand erklären möchte, wie ein standardkonformes strtok mit thread_local implementiert wird. [c] #include <stdio.h> #include <string.h> #include <threads.h> char string[] = "Hallo Welt"; int func_1() { char const* tok = strtok(string, " "); printf("func_1: %s\n", tok
Oh, falscher Link, kommt aber aufs gleiche raus: https://en.cppreference.com/w/c/string/byte/strtok
-
Thread
C# Frage von C++Builder-Umsteiger
Hallo Leute, ich möchte eine Art Hyperterminal mit C# realisieren, also ein Terminalfenster für die serielle Kommunikation. Das wird ein Teil einer größeren Anwendung. Die Schnittstellen-Komponente läuft schon ganz gut, und als C# Neuling mit BCB-Vorkenntnissen
Text = ""; } } ad 2) Angenommen du hast die Zeichen in einer Variable namens "buff" vom Typ string gespeichert. Du kannst dann ganz einfach: string buff; string[] allLines = buff.Split('\n'); alternativ kannst du anstatt dem Zeichen \n auch ein anderes nehmen, musst halt schauen was du
-
Thread
"/" im C-Quellcode
nächsten > Zeile fort. Das gilt übrigens nicht nur für Makrodefinitionen, sondern allgemein für C-Quellcode: [c] #include <stdio.h> int main () { printf ("%s\n", "Das ist ein \ langer String"); return 0; } [/c] Ohne Backslash gibt es einen Syntax-Error, mit Backslash kompiliert
Frank M. schrieb im Beitrag #5688831: > printf ("%s\n", "Das ist ein \ > langer String"); Das sollte man lieber nicht machen, da man den Quellcode nicht mehr einrücken kann. Besser ist: [c] printf ("%s\n", "Das ist ein " "langer String"); [/c]
-
Thread
Schwierigkeiten mit c macros
In den Anwender-Parameter-header kommt das hier: [c] #define INITPORT A #define INITPIN 5 [/c] In deinen header dann das hier: [c] #define CONCAT2(a,b) a##b #define CONCAT(a,b) CONCAT2(a,b) #define INIT_PORT CONCAT(PORT, INITPORT) #define
] oder gleich so: [c] INIT_DDR |= (1<<INITPIN); [/c] Oliver
-
Thread
C# Typendefinitionen
hier zu tun. [C] Nullable<Int32> Test2 = null; [/C]
Nur vollständiger halber… [c]int? x = null;[/c] …wäre der verkürzte Syntax dafür =)
-
Thread
mikropascal Compiler 8051 von MIKROE
richtig ist? Muss das 'xdata' nicht eher bei der Deklaration der Variabele plaziert sein? Sprich: [c]var txt2: string[10] xdata;[/c]
oder xdata;? - Sowas komisches wie "x: =y" schiebe ich jetzt mal auf die Forensoftware, oder? [c] var txt2: string[10]; xdata txt2: string[10]; Begin ... [/c] Auch wenn mein Pascal mindestens 20 Jahre eingerostet ist, so sieht das für mich syntaktisch richtiger aus als eine "xdata
-
Thread
Kurze Pointerfrage "C"
Hi! ich fange mit C an und habe eine kurze frage.. wenn ich ein struct habe typedef struct person { string name; string straße; } PERSON; [..] PERSON test; [..] wenn ich jetzt einer Funktion
Aufpassen, C kenn keine Strings. In der Deklaration von deinem Struct ist 'n Fehler: [c] struct PERSON { // ... }; struct PERSON test; [/c] oder [c] struct PERSON { // ... } test; [/c]
-
Thread
"C" Problem mit Pointer für PIC18Fxxx
articles/Festkommaarithmetik bin ich auf ein Problem für PIC18Fxxx gestoßen. Ich bekomme main.c:129: error: (183) function or function pointer required main.c:129: error: (981) pointer required im Bezug auf den String. Hat jemand eine Idee wie man das für Microchip XC8 PIC18Fxxx CPU lösen
129??? > Kann man das formatieren ? [code][c]C-Code[/c][/code]
-
Thread
String durch zwei eingrenzende Strings extrahieren
+strlen(DelimString1)))); puts(Filtered_Value); [/c]
Kai I. schrieb im Beitrag #4192863: > [c] > char * ptr_string1 = strstr(input_line,DelimString1); > char * ptr_string2 = > strstr(ptr_string1+strlen(DelimString1),DelimString2); > [/c] Beachte auch Karl Heinz' Hinweis, den Rückgabewert
-
Thread
Pollin 16080 Touch mit ATMEGA32 und BASCOM
Ports ein und auszuschaleten - rein aus Testzwecken. Eine Frage zum Touch-Rückgabewerte-Raster: [c]Dim Lcd_format(192) As Byte Dim Lcd_form_0 As String * 23 At Lcd_format(1) Overlay Dim Lcd_form_1 As String * 23 At Lcd_format(25) Overlay Dim Lcd_form_2 As String * 23 At Lcd_format(49) Overlay
können die einzelnen Werte auch in Form einer Textzeile direkt zugewiesen werden. Bascom verwendet wie C eine 0 als Textendezeichen, deshalb hat das Array 24 * 8 Speicherstellen. Dim Lcd_format(192) As Byte Dim Lcd_form_0 As String * 23 At Lcd_format(1) Overlay Dim Lcd_form_1 As String * 23 At Lcd_format
-
Thread
Finde den fehler nicht-C#
aufgefallen, dass für den Button btnStart kein Click-Ereignis eingetragen ist. Im Code existiert zwar [c] private void btnStart_Click(object sender, EventArgs e) { ... } [/c] aber wenn ich im Entwurfsmodus auf btnClick doppelklicke, wird eine neue Funktion [c]
zugreifen darf. D.h. alle Zugriffe müssen mit Invoke an den Hauptthread delegiert werden bspw. so: [c] public delegate void LabelUpdater(String aString); public LabelUpdater LabelDelegate; void LabelDelegate(string aString) { ... } void PortDataRecieved(...) { ... labelZone[x].
-
Thread
Ansi C: Convertierung int to string
Hallo, in einer Mikrocontroller Applikation soll ein Integer-Wert in ein String umgewandelt werden. [c] unsigned int ip = 0xc0a8010c char* cip [/c] In cip soll dan der string "192.168.1.12" drin stehen Wie könnte sowas in Ansi C realisiert werden?
>> 24), (uint8_t)(ip >> 16), (uint8_t)(ip >> 8), (uint8_t)ip); printf("IP-Adresse als String: %s\n", cip); return 0; } [/c] [pre]IP-Adresse als String: 192.168.1.12[/pre]
-
Thread
Raspberry durch einen µC überwachen?
Ein Raspberry Zero soll über seine serielle Schnittstelle mit einem µC (ATtiny o. ä.) verbunden werden. Der µC soll den Raspberry überwachen und im Fehlerfall neu starten. Wie kann der µC sicher erkennen, ob der Raspberry einwandfrei arbeitet?
schauen, ob da etwas mit "meinscript.py" vorkommnt. Ich erkläre dir jetzt aber nicht, wie man Strings in C programmiert.
-
Thread
C# automatisch Strukturen einer Klasse erzeugen
Berechnung der Heizgeschwindigkeit label15.Text = uload.ToString(); double test1 = PS.GetTLEVEL(t, T0, tconv); label8.Text = test1.ToString(); } [/c] Der Pufferspeicher hat je nach eingabe eine Anzahl an Level. Ich
Tick(object sender, EventArgs e) { label1.Text = Puffer2.NLEVEL[0].Hight.ToString("F4"); label4.Text = Puffer2.NLEVEL[0].Volume.ToString("F4"); label8.Text = Puffer2.ULOAD.ToString("F6"); label11.Text = Puffer2.UHEAT.ToString("F6");
-
Thread
C: Was bedeutet das?
die originale Notation nach K&R beziehen, die > ist so etwa gleichaltrig. Der Unterschied: bei C gab es seitdem weitere ISO-Standards wie C99 und C11.
Variante, daß jemand so etwas schreibt: [c] MyBool = NeVariable; [/c] und damit meint: [c] MyBool = NeVariable != 0; [/c] Naja, das hängt eben alles an der C-eigenen Definition von Boolean. W.S.
-
Thread
(volatile) String vergleichen
")==0) { uart_puts(strcat(itoa(get_color("BLUE"),string_seriel,10),CR)); } } [/c]
Wenn du dir hier [c] strcpy(uart_temp,(char*)uart_string); [/c] den String sowieso schon umkopiert hast, warum verwendest du dann nicht in weiterer Folge überall die Kopie?
-
Thread
c++ Code to Arm Assembler
); Adresse = searchStringInString(Text, Text); Adresse = searchStringInString(Suchstring, Suchstring); Adresse = searchStringInString(Suchstring, Text); return 0; } [/c]
Stimmt du hast ja recht. Daher hier die reine C Funktion. [c] int searchStringInString(char *string, char *substring) { register char *a, *b; b = substring; if (*b == 0) { //return string; return
-
Thread
Pointer suche
ausgenutzt wird und man den kompletten String in 3 Teilstrings zerlegt, deren Zusammensetzung dann die gewünschten Strings ergibt. [C] static const char* ClearJoyArea = "#RL200,30,350,120,"; static const char* SetJoyArea = "#UI255,35,
ja nichts dagegen, dass du dir zb eine SendeString2 FUnktion machst, die 2 Strings bekommt und die beiden hintereinander ausgibt. [C] uint8_t sendeDaten2(const char* data1, const char* data2) { uint8_t bcc; uint8_t retNak = 0; uint8_t
-
Thread
[c] woher kommen die Standardlibs
interessiert mich aber wirklich. Meine frage bezieht sich eigentlich auf die Standard Librarys wie z.B. string.h oder stdlib.h. Hierbei egal ob von AVR-GCC oder GNU-GCC. Die Funktion strlen() gibt die länge eines Strings zurück. Die Deklaration in string.h dabei sieht wie Folgt aus: [c]extern size_t strlen
/wiki/C-Standard-Bibliothek
-
Thread
mit Bascom über rs232 Frequenz aus einen Frequenzzählermodul auslesen.
= 9600 'Config Serialin = Buffered , Size = 20 Config Input = Cr Dim Char_buffer1(16) As String * 1 Dim Char_buffer2(16) As String * 1 Dim Contrast_wert As Byte bekomme ich beim compilieren eine Fehlermeldung Error : 103 Line : 16 = expected , in File : C:\Users\Berres\Desktop
habe > zwar eine ältere Version vor vielen Jahren gekauft aber nie was damit > gemacht weil mir C einfach lieber ist. Hallo Gerhard wenn du C beherrschst, dann bleibe bei C da es ohnehin die bessere Sprache zu sein scheint. Ich habe zwar mal versucht in C was zu machen. Dabei bin ich aber
-
Thread
float nach string mit einer nachkommastelle
Meine Idee wäre jetzt gewesen den String zu zerlegen und einen Punkt einzufügen. [c] #include <stdio.h> #include <stdint.h> #include <assert.h> char* toString(char* target, size_t size, int8_t value) { assert(value <= 100
target[0] = ' '; return target; } int main() { char buf[5]; printf("%s\n", toString(buf, sizeof buf, 1)); printf("%s\n", toString(buf, sizeof buf, 10)); printf("%s\n", toString(buf, sizeof buf, 100)); } [/c] Newbie schrieb im Beitrag #7002943: > In anderen Programmiersprachen
-
Thread
Verwendung von Serial.readStringUntil
nicht ausgeführt. Dafür ist die Konkrete Klasse/Kapselung zuständig. Im falle der Arduino Strings würde das so aussehen: [c] String buffer = "hallo"; char c; c = buffer.charAt(0) // liefert 'h' c = buffer.charAt(42)// liefert '/0' c = buffer[0] // liefert 'h' c = buffer[4711]// liefert '/0' [/c] Wenn buffer ein C String wäre, würde buffer[42] einen "Zufallswert" liefern, eben das was zufällig an der Stelle im Speicher steht. Peter D. schrieb im Beitrag #6846618: > Ich hab mit C++
-
Thread
Mit C mehrstufige Verzeichnisstruktur durchsuchen;
(set));" > > in Zeile 45 klappt das Compilieren. Das deutet darauf hin, dass du den Code als C++ statt als C kompiliert hast. In C++ geht es nicht ohne den Cast. In C braucht man den nicht, und sollte weggelassen werden. Unnötiges Casten ist in C Code nicht gerne gesehen.
🐧 DPA 🐧 schrieb im Beitrag #6979332: > Das deutet darauf hin, dass du den Code als C++ statt als C kompiliert > hast. Darauf deutet auch das hin: interrupt schrieb im Beitrag #6979058: > g++ -O0 -g3 -Wall -c -fmessage-length=0 -o main.o "..\\main.cpp" > In C braucht man
-
Thread
C++ Klassen in AVR-Studio
Hallo, bin ein C++ Head und versuchte eine Klasse (c++ syntax "class") im AVR-Studio mit dem AVR-GCC Compiler zu erzeugen. Ging nicht. Weil ich eine C++ Syntax mit einem C Compiler übersetzen wollte. So viel weiß
avr-gcc kompiliert C++-Code, wenn die Sourcedatei auf .cpp, .c++, .C (für weiteres siehe manual) endet.
-
Thread
C: möchte String Zeichen für Zeichen analysieren und abschneiden
"; char *line = text; Foo(&line); Foo(&line); } [/c] schöner: [c] bool Foo(char*& line) { if (*line== 'A') { // tuwas } line++; // 1. Zeichen Abschneiden, restlichen String analysieren return true; } void main() { char
Nimm C++. Da gibt es std::string mit entsprechenden Funktionen. Und den String einfach als Referenz übergeben, da wird dann in der Funktion keine Kopie sondern das Original geändert. Kostet zwar Platz und
-
Thread
Probleme mit AVRStudio 5
\Elektronik\Mikroprozessoren\GCC\Projekte\Transistortester\Debug/.././Transistortester.c(997,1): undefined reference to `lcd_fix_string' D:\Documents\Elektronik\Mikroprozessoren\GCC\Projekte\Transistortester\Debug/.././Transistortester.c(1000,1): undefined reference to `lcd_fix_string'
\Elektronik\Mikroprozessoren\GCC\Projekte\Transistortester\Debug/.././Transistortester.c(360,1): undefined reference to `lcd_fix_string' D:\Documents\Elektronik\Mikroprozessoren\GCC\Projekte\Transistortester\Debug/.././Transistortester.c(362,1): undefined reference to `lcd_fix_string'
-
Thread
Mehrsprachige Strings ohne Hilfsprogramme?
}; extern enum langs lang; #endif [/c] [c] #include <stdio.h> #include "localisation.h" enum langs lang = EN; int main(){ puts(L(( [EN] = "Hello World!", [DE] = "Hallo Welt!" ))); return 0; } [/c]
" }; #undef ENTRY // Englische Texte #define ENTRY(a, b, c) c, char * lang_en[] = { #include "texte.h" }; #undef ENTRY
-
Thread
Schleifenproblem
dann darauf aufbauend die Funktion, die mit komplizierteren Daten umgehen kann. Hier ist sie [C] void lcd_string( const char* string ) { char c; c = *string; while( c != '\0' ) { lcd_char( c ); c = *string; string++; } } [/C] (So gesehen ist die "kompliziertere
das noch vergessen: while( *c != '\0' ) void lcd_string( const char* string ) { char *c; c = string; while( *c != '\0' ) { lcd_char( *c ); c++; } }
-
Thread
Einfacher Interpreter für Komandozeilen/Befehlszeilen
Funktion [C] void l_trim(char *string, char sign) { register uint8_t a_cnt=0; /* Search for the end of the string */ while(string[a_cnt]!=0) a_cnt++; /* search at the end for char which is not the same like the one in char sign */ while (string[--a_cnt]==sign); string[++a_cnt]=0; }/* void l_trim(char *string, char sign) */ [/C] kann man in einer Pointer-Version zb so formulieren [C] void l_trim(char *string, char sign) { /* Search
-
Thread
C# Dynamische Modifikation eines Srtings wärens des Kompilierens.
Also, ich habe eine Funktion die mir einen string als Return gibt. Und dieser String soll wärend des Kompilierens geändert werden, so dass ich mehrere Dateien mit jeweils anderen Returns bekomme. Bye, SD-Fritze
Wieso lädst du die Strings dann nicht einfach aus einer Textdatei? Wenn die personalisierten Daten mehrere Strings sind dann trenn sie einfach durch ein Semikolon und bei einer neuen Zeile ist dann ein neuer Datensatz also