Nasıl bir arada C harflerden oluşan dizeler inş/?
C çalışıyorum ve bir kaç şey bağlamak gerekiyor.
Ben şu an bu var:
message = strcat("TEXT " , var);
message2 = strcat(strcat("TEXT ", foo), strcat(" TEXT ", bar));
Şimdi Eğer C deneyimi varsa bu çalıştırmak için çalıştığınızda, Bölümleme Hatası verir bunun farkındasınız eminim. Bu nasıl bir çözüm?
CEVAP
C, "" sadece düz char
diziler. dizeleri Bu nedenle, doğrudan bir arada yapamazsın "dizeleri".
Dize dize sonu dest
işaret src
ile işaret ekler strcat
işlevi kullanabilirsiniz:
char *strcat(char *dest, const char *src);
Burada example from cplusplus.com bir:
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
İlk parametre için hedef tampon kendisini sağlamak gerekir. Hedef tampon char dizi bir tampon olmalı. E. g.: char buffer[1024];
Emin olunilk parametre içine kopyalamaya çalıştığın şeyi saklamak için yeterli alan var. Eğer sizin için kullanılabilir, fonksiyon gibi kullanmak için güvenli değildir: açıkça hedef arabellek boyutunu belirtmek için strcpy_s
strcat_s
.
Not: Dize değişmez bir sabit. bir o yana bir tampon olarak kullanılabilir Böylece, her zaman tampon için char bir diziye ayırmak zorunda.
strcat
dönüş değeri göz ardı edilebilir, sadece ilk argüman olarak kabul edildi aynı işaretçi döndürür. Kolaylık sağlamak için vardır, ve bir satır kod içine çağırır zinciri için izin verir:
strcat(strcat(str, foo), bar);
Sorun aşağıdaki gibi çözülebilir
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);
Nasıl Java iki dizi bir arada olabilir...
Dizideki karakterlerden oluşan düzeltm...
Nasıl C iki dizi bir arada mı#?...
Nasıl R dizeleri/karakter vektör arada...
İlk seçmek için nasıl başka bir eleman...