如何在C中获取子字符串

shi*_*n32 9 c

我有一个字符串,让我们说"THESTRINGHASNOSPACES".

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

hol*_*gac 11

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

strncpy(sub1, baseString, 4);
strncpy(sub1, baseString+4, 4);
strncpy(sub1, baseString+8, 4);
Run Code Online (Sandbox Code Playgroud)

要么

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;
Run Code Online (Sandbox Code Playgroud)

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

  • 您输入的命令有误:它是`strcpy(dest,src)`。另外,您只需要复制4个字符,因此`strcpy`不是正确的工具。使用`strncpy`。 (2认同)