我有一个字符串,让我们说"THESTRINGHASNOSPACES“。
我需要一些东西,可以从字符串中获得4个字符的子字符串。在第一个调用中,我应该得到"THES";在第二个调用中,我应该得到"TRIN";在第三个调用中,我应该得到"GHAS“。我如何在C中做到这一点?
发布于 2011-07-13 20:57:28
如果任务仅复制4个字符,请尝试for循环。如果它将变得更高级,并且您需要一个函数,请尝试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。
发布于 2011-07-13 21:17:05
#include <stdio.h>
#include <string.h>
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);
}
}
发布于 2011-07-13 21:28:58
如果你只想打印子字符串...
char s[] = "THESTRINGHASNOSPACES";
size_t i, slen = strlen(s);
for (i = 0; i < slen; i += 4) {
printf("%.4s\n", s + i);
}
https://stackoverflow.com/questions/6679204
复制相似问题