如何在C中获取子字符串

我有一个字符串,让我们说“THESTRINGHASNOSPACES”。

我需要从字符串中获取4个字符的子字符串。 在第一次通话中,我应该得到“THES”; 在第二,我应该得到“TRIN”; 在第三,我应该得到“GHAS”。 我怎么能在C中这样做?

如果任务只复制4个字符,请尝试循环。 如果它会更高级并且您要求function,请尝试strncpy。 http://www.cplusplus.com/reference/clibrary/cstring/strncpy/

strncpy(sub1, baseString, 4); strncpy(sub1, baseString+4, 4); strncpy(sub1, baseString+8, 4); 

要么

 for(int i=0; i<4; i++) sub1[i] = baseString[i]; sub1[4] = 0; for(int i=0; i<4; i++) sub2[i] = baseString[i+4]; sub2[4] = 0; for(int i=0; i<4; i++) sub3[i] = baseString[i+8]; sub3[4] = 0; 

如果可能的话,更喜欢strncpy。

 #include  #include  int main() { char src[] = "SexDrugsRocknroll"; char dest[5] = { 0 }; // 4 chars + terminator */ int len = strlen(src); int i = 0; while (i*4 < len) { strncpy(dest, src+(i*4), 4); i++; printf("loop %d : %s\n", i, dest); } } 

如果你只想打印子串……

 char s[] = "THESTRINGHASNOSPACES"; size_t i, slen = strlen(s); for (i = 0; i < slen; i += 4) { printf("%.4s\n", s + i); } 
 char originalString[] = "THESTRINGHASNOSPACES"; char aux[5]; int j=0; for(int i=0;i