C Konvertiere Char in Char *

7

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%     
Matthew 29.06.2012, 20:06
quelle

2 Antworten

16

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:

%Vor%

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%     
Dancrumb 29.06.2012, 20:11
quelle
5

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

tun %Vor%

Vergessen Sie nicht, ptr später zu veröffentlichen!

    
Daniel 29.06.2012 20:18
quelle

Tags und Links