hallo, ich habe meine DS18S20 library soweit am laufen. jetzt würde ich gerne noch eine weitere funktion haben um direkt einen sensor mit dem romcode und nicht mehr skip rom auszulesen. leider komme ich da nicht weiter. unsigned char readtempfromrom(int romcode) { ...... return (temp); } jetzt lese ich den rom code folgendermaßen ein: for (i=0; i<8; i++) { rom_c[i] = readbyte(); } hierdurch steht der romcode im rom_c array. für die oben erwähnt funktion brauche ich den romcode aber in einem einzigen string ohne ihn mit .....[0] bis .....[7] angeben zu müssen daher dachte ich mir for (i=0; i<8; i++) { strcat(romcode, &rom_c[i]); } leider muss ich die einzelnen elemente dann wieder mit romcode [0] bis romcode[7] aufrufen, ich möchte aber das der gesamte romcode dann in der variable romcode steht, wie setze ich das um? dann würde ich gerne noch wissen wie manche das machen das sie in ihrem romcode auch buchstaben haben, mein romcode besteht rein aus zahlen. ich hoffe man versteht was ich brauche und man kann mir helfen. danke
Ein String ist in C nichts anderes als ein Char-Array. Dein Array rom_c ist also im Prinzip schon ein String, sofern es vom Typ char[] ist und Du es noch mit einer Null terminierst. Lies Dir mal diesen Artikel durch, da ist das alles beschrieben: http://www.mikrocontroller.net/articles/String-Verarbeitung_in_C
das habe ich mir schon durchgelesen. ich kapiere diese ganze pointer sache etc nicht. egal was ich wann wie auch tue ich erhalte von meinem string immer nur den ersten wert. ich will aber einen ganzen string. wenn ich z.b. schreibe: test = "inhalt"; dann kann ich das einfach mit dem aufruf von test weiter verwenden. beim rom_c oder auch romcode muss ich weitergehend mit rom_c[..] arbeiten und bei romcode ebenfalls. der romcode soll aber einfach in romcode stehen, also als ob ich den selber schreiben würde. romcode = "1234567890" nur halt dynamisch aus den array inhalten. in php, bash, phyton sowie perl ist das spielend einfach.
Tobias N. schrieb: > ich kapiere diese ganze pointer sache etc nicht. Ohne Zeiger verstanden zu haben wirst Du in C nicht weit kommen. Da musst Du ansetzen und es lernen. Es ist kein Hexenwerk, aber man muss sich darauf einlassen. Du kannst auch ein vollständiges, kompilierbares Codebeispiel posten, was Du schon versucht hast. Schreib dazu, was welche Funktion genau machen soll bzw. was sie macht. Dann kann man versuchen Dir zu erklären, wo der Fehler liegt. Für Dich jetzt einen allgemeinen Aufsatz über Zeiger und Strings zu schreiben hat nicht viel Sinn, das gibt es schon tausendfach in jedem C-Buch und Tutorial.
Tobias N. schrieb: > das habe ich mir schon durchgelesen. ich kapiere diese ganze pointer > sache etc nicht. Warum glauben manche Zeitgenossen, dass man einen Text schon beim ersten Anlauf verstanden haben muss? Dies scheint die weit verbreitete Pest der Instant-Generation zu sein. Immer alles und zwar sofort. Das Verständnis eines (Fach-)textes erschliesst sich je nach Komplexität in mehreren Stufen.
1 | while (!verstanden) |
2 | {
|
3 | lese(); |
4 | lerne(); |
5 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.