[GO] C> strtok ()> Laufzeitfehler> String-Literal kann nicht verwendet werden

http://qiita.com/7of9/items/e28895f22afda103092e#comment-98a5487d3db42a0ecd16 Ich war süchtig danach, meine eigene Funktion basierend auf meinen Kommentaren zu erstellen.

Das String-Literal kann nicht als Zeichenfolge verwendet werden, die an strtok () übergeben werden soll.

Referenz http://stackoverflow.com/questions/32844304/splitting-char-array-using-strtok-giving-runtime-error

You can't call strtok() on a string literal, because string literals are constant.

Ich erhalte einen Laufzeitfehler mit dem folgenden Code.

http://ideone.com/jcTotE

#include <stdio.h>
#include <string.h>

static const char *s_rcvd = "pval,3.141,2.718,6.022"; // dummy data

int main(void) {
	char *tp;
	
	tp = strtok(s_rcvd, ",");

	return 0;
}

Nach dem Kopieren des obigen s_rcvd nach szbuf, das als char szbuf [120] deklariert wurde; mit strcpy (szbuf, s_rcvd); verursacht strtok (szbuf, ",") keinen Laufzeitfehler mehr.

Verwenden Sie beim Testen einer Funktion das Zeichenfolgenliteral. Bei der normalen Verarbeitung handelt es sich um eine Zeichenfolge, die anstelle des Zeichenfolgenliterals als char [] deklariert wurde.

Recommended Posts

C> strtok ()> Laufzeitfehler> String-Literal kann nicht verwendet werden
Kein Modul namens'distutils.util 'kann nicht mit get-pip.py verwendet werden
Das Problem, dass der Befehl ifconfig nicht verwendet werden kann