C-Programm – String (char) kopieren
Dieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!
#include <stdio.h>
#include <string.h>
/* --- 1. strcpy mit Arrays --- */
char *strcpy1(char ziel[], const char quelle[]) {
int zahl = 0;
// solange Zeichen von der Quelle vorhanden sind,
// also quelle[zahl] ungleich 0 ist ...
// (letztes Zeichen eines Strings ist immer \0 -> =0 -> false)
while(quelle[zahl]) {
// der Buchstabe aus dem Quell-Array wird
// an die selbe Stelle ([zahl]) im Ziel-Array geschrieben
ziel[zahl] = quelle[zahl];
// zahl wird um 1 erhöht (zahl=zahl+1)-> nächster Buchstabe
zahl++;
}
// der neue Sting wird abgeschlossen
ziel[zahl] = '\0';
return(ziel);
}
/* --- 2. strcpy mit Arrays --- */
char *strcpy2(char ziel[], const char quelle[]) {
int zahl = 0;
// solange der Buchstabe aus dem Quell-Array an die selbe Stelle ([zahl])
// im Ziel-Array geschrieben werden kann, also quelle[zahl] ungleich 0 ist ...
// (letztes Zeichen eines Strings ist immer \0 -> =0 -> false)
while((ziel[zahl] = quelle[zahl]))
// zahl wird um 1 erhöht (zahl=zahl+1) -> nächster Buchstabe
zahl++;
return(ziel);
}
/* --- 3. strcpy mit Zeigern --- */
char *strcpy3(char *ziel, const char *quelle) {
// solange der Buchstabe vom Quell-Zeiger auf die selbe Stelle
// vom Ziel-Zeiger zeigt ...
// (letztes Zeichen eines Strings ist immer \0 -> =0 -> false)
while((*ziel = *quelle)) {
// Zeiger um einen erhöhen -> nächste Speicherstelle -> nächster Buchstabe
ziel++;
quelle++;
}
return(ziel);
}
/* --- 4. strcpy mit Zeigern --- */
char *strcpy4(char *ziel, const char *quelle) {
// solange der Buchstabe vom Quell-Zeiger auf die selbe Stelle
// vom Ziel-Zeiger zeigt, so werden diese jedesmal um 1 erhöht ...
// (letztes Zeichen eines Strings ist immer \0 -> =0 -> false)
while((*ziel++ = *quelle++));
return(ziel);
}
int main(void) {
char *gruss = "Hallo Welt";
char gruss1[100];
char gruss2[100];
char gruss3[100];
char gruss4[100];
char gruss5[100];
/* --- 1. strcpy mit Arrays --- */
strcpy1(gruss1, gruss);
printf("%s\n", gruss1);
/* --- 2. strcpy mit Arrays --- */
strcpy2(gruss2, gruss);
printf("%s\n", gruss2);
/* --- 3. strcpy mit Zeigern --- */
strcpy3(gruss3, gruss);
printf("%s\n", gruss3);
/* --- 4. strcpy mit Zeigern --- */
strcpy4(gruss4, gruss);
printf("%s\n", gruss4);
/* --- 5. strcpy -> <string.h> --- */
strcpy(gruss5, gruss);
printf("%s\n", gruss5);
return(0);
}
Bewertung:
Ähnliche Blog-Einträge:
C-Programm – Steuerzeichen
C-Programm – Primzahlen & Makefiles
C-Programm – neueste Datei eines Verzeichnisses (Linux)
C-Programm – check_mem für Nagios
