2016-04-04 32 views
-5

eğer:C dilinde nasıl alt yazı alabilirim? Örneğin

z = "xxxx; yyyy"; 

nasıl alt dizeleri alabilirsiniz böylece "xxxx" ve "yyyy" Herhangi herhangi bir dize olabilir

x = "xxxx" 

ve

y = "yyyy" 

uzunluk?

+2

, bu yakın oy başına kadar, gerçekten çok geniş değildir: Burada

bir örnektir. Ancak, "araştırma çabasını göstermiyor" downvote kriterlerine uyuyor. C ve substring için Google'ın basit bir araması, bir ton yanıt vermelidir. – Almo

+0

Dizgeyi '';'' karakteriyle ayırmayı nasıl ayıracağınızı mı soruyorsunuz? –

cevap

4

Alt dizeleri de olsa, C'ye yerleşik dizelerin çoğunu alamazsınız. Bir alt dizeye gereksinim duyduğunuzda, dizenin ilgili bölümlerini düzgün bir şekilde ayrılmış bir bellek arabelleğine kopyalayarak kendiniz hazırlarsınız ve sonra sonucu sonlandırırsınız. Bence

char *c = "xxxx; yyyy"; 
char x[5], y[5]; 
memcpy(x, &c[0], 4); 
x[4] = '\0'; 
memcpy(y, &c[6], 4); 
y[4] = '\0'; 

Demo.

+0

'C'deki yerleşik dizgileri fazla almazsınız, sadece alt dizeleri' - Sana bunu söyleyemem. Bu kesinlikle doğru, ama o kadar çok, bu yüzden o kadar iç karartılıyor ki: ((.. –

+0

@MartinJames Benim en sevdiğim deyim, "C, montaj dilinin gücü ve performansını, montaj dilinin esnekliği ve kullanım kolaylığı ile birleştiriyor. "Elbette, bu bir şakaydı, ama her şakada bir şaka (sic) var. – dasblinkenlight

İlgili konular