ich suche eine Funktion oder Lösung, um aus einem Stringarray einen Teil rauszuschneiden bzw. vorne und hinten 1 Zeichen abzuschneiden.
Der char - String :
char meinstring [10] = "";
Diesem String werden von einer anderen Quelle woanders im Programm 10 Zeichen aus externen Daten zugewiesen. Kann ich inhaltlich dort nicht manipulieren
Inhalt jetzt z.B. : "#abcdefgh#"
Jetzt soll das erste und das letzte Zeichen weg.
Übrig bleibt in neuerstring dann "abcdefg" und soll ausgegeben werden
display.println( neuerstring );
In Basic wäre das mit midstring(....) ganz easy.
Für Arduino-C++ habe ich leider nichts Brauchbares oder verständliches gefunden.
Das gibt doch sicher auch 1-Zeiler, die so was erledigen?
Wieder einmal das Problem, das nicht das ganze Problem geschildert wird. U.U. gibt es ganz andere, einfachere Lösungen, die du dir durch deine Fragestellung selbst verbaust.
TIPP: Zeige den ganzen Code. Du wirst überrascht sein, was alles möglich ist.
Das ist kein C-String.
OK, gerade noch so.
Aber das ändert sich sofort!
Denn:
Das passt da nicht mit Null rein, darum ist es kein String.
E:\Programme\arduino\portable\sketchbook\sketch_feb19f\sketch_feb19f.ino:1:25: warning: initializer-string for 'char [10]' is too long [-fpermissive]
1 | char meinstring [10] = "#abcdefgh#";
| ^~~~~~~~~~~~
Du arbeitest/denkst schlampig.
char meinstring [10] = "#abcdefgh#"; // der String, der keiner/kaputt ist
void setup()
{
Serial.begin(9600);
*(meinstring + 9) = 0;
Serial.println(meinstring + 1);
}
void loop()
{
}
2 Stunden Doku lesen ... da hast du die Einleitung geschafft und das Einführungshapitel. Nimm' dir ein Buch über Arduino für die Grundlagen (die haben ~ 200 Seiten) und eines über C (~ 200 Seiten) - oder C++ (~ 1200 Seiten) wenn dir der Syntax komplett fremd ist. Dasfür brauchst du ~ 6 Wochen, dann hast du die Grundlagen. Du kannst auch versuchen abzukürzen - wird nur nicht funktionieren.
Ich habe heute 2 Stunden nur mit diesem speziellen Problem verbracht. Leider erfolglos. Und ich lese seit Jahren Programmierdokus aller Art - immer wieder. Leider bin ich nicht so schlau wie manche Leute hier und weiß nicht alles. Aber fragen darf man hier wohl nicht mehr?
Leute wie du gehen mir auf den Sack! Nur Provokationen ohne Wert.
Da lande ich nur auf dem Profil von ihm. Und ehrlich gesagt interessiert es mich nicht mehr.
Für jemand, der weiß, wie es geht, wäre ein helfendes Beispiel anhand meiner Angabe in der Frage wohl nicht mehr als ein 3-Zeiler. Und das Thema wäre erledigt. Stattdessen folgt eine Antwort nach der andern, von Leuten, denen vielleicht langweilig ist und die gerne andere provozieren, und niemandem helfen.
Ich stecke diese Leute jetzt alle der Reihe nach in den Blockierfilter. Vielleicht bleiben dann Leute übrig, die wirklich helfen können und wollen ohne zu provozieren und zu lehrmeistern.
Wenn ihr euch mal wieder beruhigt habt, sollte @anon1549072 sich den "Ganzen Code" von @combie (#7) ansehen.
Wenn die zwei Zeilen des Ganzen Code (7 Zeilen) nicht das Problem lösen, ist da ein Problem in der Problembeschreibung, und ein komplett-Beispiel ist sicher klarer als Prosa.
Ein Tip: Man muss nicht jedem sagen dass er nervt. Aber ertragen, falls man es gesagt kriegt. (Ich gehe mal davon aus, dass man Reaktionen erhofft, wenn man hier postet.)
Ein paar wenige Leute hier habe ich übrigens hier für mich auf "ignored" gesetzt. Und verkneife mir in der Regel nachzusehen, was sie in der "Hidden Message" von sich gegeben haben.
Was ist an meiner Problembeschreibung unverständlich?
Ich möchte einfach das erste und letzte Zeichen eines char-String-Arrays weg haben.
Ohne dass ich 3 Jahre ein EDV-Studium mit c++ als Hauptthema besuchen muss. Ich habe nun mal nur Anfängerlevel.
Ist das so schwer zu verstehen?
Ist da niemand fähig oder willens mal einen verständlichen 2 oder 3 Zeiler als Beispiel zu posten? Bisher besteht der Thread fast nur aus Angriffen und nicht zielführendem drumherum. Ein Verweis auf ein C++ Buch z.B. ist keine Hilfe. Denn da habe ich die (einfache) verständliche Lösung auch nicht gefunden.
Du hast eine Komplettlösung erhalten, die du ignorierst.
Diese zeigt auch, wie man eine Problemlösung in wenigen Zeilen Komplett demonstrieren kann.
@combie hat es sich dir zuliebe sogar verkniffen zu zeigen, dass es zig Libraries gibt, die die Lösung eleganter aussehen lassen, sondern simplestes Serial.println verwendet.
Dir zuliebe hat er die zwei Aufgaben (erstes Zeichen abschneiden / letztes Zeichen abschneiden) auf zwei Code-Zeilen verteilt, obwohl man da auch einen von dir favorisierten Einzeiler draus machen könnte.
Du sollst nicht wahllos Dokus lesen, du sollst Arduino programmieren lernen. Wenn du glaubst, "Dokulesen" löst das, dann bist du am falschne Dampfer - aber IMO hast du das selber gemerkt. Problem ist nur, du musst selber über deinen Schatten springen und anfangen zu lernen - von der Picke auf. C/C++ ist nicht Basic, das muss mal ins Hirn.