Konkatenacja łańcuchów stałych
Jedna z odpowiedzi doDlaczego nie używasz C do swoich aplikacji internetowych? zawiera następujące elementy:
Dla przykładu C crap poniżej:
<code>const char* foo = "foo"; const char* bar = "bar"; char* foobar = (char*)malloc(strlen(foo)+strlen(bar)+1); strcpy(foobar, foo); strcat(foobar, foo); </code>
W rzeczywistości stałe MOGĄ I POWINNY być naturalnie łączone w C:
<code>const char foo[] = "foo"; const char bar[] = "bar"; char foobar[] = foo bar; // look Ma, I did it without any operator! </code>
A użycie [] zamiast * pozwoli nawet zmodyfikować łańcuch lub znaleźć jego długość:
<code>int foo_str_len = sizeof(foobar)-1; </code>
Więc proszę, zanim (fałszywie) twierdzisz, że C jest trudny w użyciu z ciągami, naucz się korzystać z C.
Sam to wypróbowałem, ale wystąpił błąd:
oczekiwany „,” lub „;” przed ciągiem znaków
Więc moje pytanie brzmi: czy muszę coś powiedzieć kompilatorowi, aby ten działał, czy powyższy post jest po prostu błędny? Zwróć uwagę, że znam inne sposoby łączenia tablic znaków w C.