Konvertierungsmethoden
Funktionen der Standardbibliothek
Konvertierung von Zeichenketten in Ganzzahlen
#include <stdlib.h>
// Grundlegende Konvertierungsmethoden
int atoi(const char *str); // Einfache Konvertierung
long atol(const char *str); // Konvertierung in lange Ganzzahlen
long long atoll(const char *str); // Konvertierung in sehr lange Ganzzahlen
Erweiterte Konvertierung mit Fehlerbehandlung
#include <stdlib.h>
#include <errno.h>
int main() {
char *str = "12345";
char *endptr;
errno = 0;
// Robuste Konvertierung mit Fehlerprüfung
long value = strtol(str, &endptr, 10);
if (errno == ERANGE) {
printf("Zahl außerhalb des Bereichs\n");
}
if (endptr == str) {
printf("Keine Konvertierung durchgeführt\n");
}
return 0;
}
Kategorien der Konvertierungsmethoden
Methode |
Funktion |
Eingabe |
Ausgabe |
Fehlerbehandlung |
Einfach |
atoi() |
Zeichenkette |
Ganzzahl |
Begrenzt |
Erweiterte |
strtol() |
Zeichenkette |
long |
Umfassend |
Benutzerdefiniert |
Manuell |
Verschiedenes |
Verschiedenes |
Flexibel |
Konvertierung verschiedener Zahlensysteme
graph TD
A[Zahlenkonvertierung] --> B[Dezimal]
A --> C[Binär]
A --> D[Hexadezimal]
A --> E[Okta]
Benutzerdefinierte Konvertierungsmethoden
Manuelle Konvertierung von Ganzzahlen in Zeichenketten
void int_to_string(int num, char *buffer, int base) {
int i = 0, is_negative = 0;
if (num < 0) {
is_negative = 1;
num = -num;
}
// Konvertierung in das angegebene Zahlensystem
while (num > 0) {
int remainder = num % base;
buffer[i++] = (remainder < 10)
? remainder + '0'
: remainder - 10 + 'A';
num /= base;
}
if (is_negative) {
buffer[i++] = '-';
}
buffer[i] = '\0';
// Umkehren der Zeichenkette
int start = 0, end = i - 1;
while (start < end) {
char temp = buffer[start];
buffer[start] = buffer[end];
buffer[end] = temp;
start++;
end--;
}
}
Leistungsaspekte
- Verwenden Sie die geeignete Konvertierungsmethode basierend auf den Anforderungen.
- Berücksichtigen Sie die Speicherallokation.
- Implementieren Sie eine angemessene Fehlerbehandlung.
- Seien Sie sich potenziellen Integer-Überläufen bewusst.
LabEx empfiehlt immer, die Eingabe zu validieren und robuste Konvertierungsmethoden zu verwenden, um die Programmstabilität sicherzustellen.