Lassen Sie sich sagen, ich habe: -C-Programmierung: String-Manipulation
char Data[1000];
Nach einiger Datenextraktion und Manipulation zu tun, übergeben Sie um in Hilfsfunktionen (wie char * Data
), ich tue dem folgend ein führendes ','
zu entfernen aus den Daten: -
if (Data[0] == ',') Data++;
Und das funktioniert wie ein Charme.
aber als ich meinen Code auf aufbaute, begann ich struct
, daß anstelle einzelner Variablen. So, jetzt
Ich habe dies: -
struct BigData
{
char Data[1000];
}
ich manipulieren, um sie nach wie vor und geben es an und alles funktioniert gut, bis ich versuche, das führt zu entfernen ‚‘. Meine oben Methodik nicht funktioniert wie folgt: -
if (_bigData.Data[0] == ',') _bigData.Data++;
aus offensichtlichen Gründen. Also habe ich beschlossen, einen temporären char
Array zu erstellen, wie folgt: -
char temp[1000];
strcpy(temp, _bigData.Data);
if(temp[0] == ',') temp++;
Kann jemand mir erklären, warum dies nicht funktioniert?
ich gerade jetzt zu Beginn Code bin in C (aus C#, wo solche Stringmanipulationen ein sehr Oberflächenniveau Verfahren sind).
Sie vergleichen sollten '==' 'temp [0]' und '',' 'zu vergleichen. '=' ist der Zuweisungsoperator. Gibt Ihnen das die Ergebnisse, die Sie erwarten? –
'Daten ++;'? Das sollte nicht kompiliert werden, da 'Data' ein Array-Name ist. –
Entschuldigung, das war ein Tippfehler meinerseits, ich habe gerade Pseudocode geschrieben ...Nun, das kompiliert und gibt mir das gewünschte Ergebnis. Hier ist, was ich gefunden habe: - http://StackOverflow.com/Questions/4295754/How-to-remove-first-character-from-c-string – Philo