Ich habe ein char
, das von fgets
vergeben wird, und ich würde gerne wissen, wie ich es in ein char*
umwandeln kann.
Ich bin mir sicher, dass das schon vorher gepostet wurde, aber ich konnte keinen finden, der genau das tat, was ich machen wollte. Jede Antwort wird geschätzt.
BEARBEITEN: Hier ist der Code.
%Vor% Zunächst ist line
ein Array von char
s und kann daher ähnlich wie char *
manipuliert werden (siehe comp.lang.c FAQ für wichtige Unterschiede), damit Sie sich keine Sorgen machen müssen.
Falls Sie jedoch eine Antwort auf die allgemeine Frage wünschen ...
Der Operator &
ist was Sie brauchen:
Beachten Sie jedoch, dass pChar ein Zeiger auf das Zeichen ist und nur dann gültig ist, wenn c im Gültigkeitsbereich ist. Das bedeutet, dass Sie pChar nicht von einer Funktion zurückgeben können und erwarten, dass es funktioniert. Es wird auf einen Teil des Heaps zeigen und Sie können nicht erwarten, dass das gültig bleibt.
Wenn Sie es als Rückgabewert übergeben möchten, müssen Sie etwas Speicher malloc und dann den Zeiger verwenden, um den Wert von c:
zu schreiben %Vor% Mit dem &
-Operator erhalten Sie einen Zeiger auf das Zeichen, wie Dancrumb erwähnt, aber es gibt das Problem des Bereichs, der Sie davon abhält, den Zeiger zurückzugeben, auch wie er erwähnte.
Eine Sache, die ich hinzufügen muss, ist, dass ich mir vorstelle, dass der Grund, warum Sie ein char*
wollen, so ist, dass Sie es als Zeichenfolge in printf
oder etwas Ähnliches verwenden können. Sie können es nicht auf diese Weise verwenden, da die Zeichenfolge NULL
nicht beendet wird. Um ein char
in eine Zeichenkette umzuwandeln, müssen Sie etwas wie
Vergessen Sie nicht, ptr
später zu veröffentlichen!
Tags und Links c type-conversion char