首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C中获取子字符串

如何在C中获取子字符串
EN

Stack Overflow用户
提问于 2011-07-13 20:54:06
回答 4查看 117.9K关注 0票数 13

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

我需要一些东西,可以从字符串中获得4个字符的子字符串。在第一个调用中,我应该得到"THES";在第二个调用中,我应该得到"TRIN";在第三个调用中,我应该得到"GHAS“。我如何在C中做到这一点?

EN

回答 4

Stack Overflow用户

发布于 2011-07-13 20:57:28

如果任务仅复制4个字符,请尝试for循环。如果它将变得更高级,并且您需要一个函数,请尝试strncpy。http://www.cplusplus.com/reference/clibrary/cstring/strncpy/

代码语言:javascript
复制
strncpy(sub1, baseString, 4);
strncpy(sub1, baseString+4, 4);
strncpy(sub1, baseString+8, 4);

代码语言:javascript
复制
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。

票数 19
EN

Stack Overflow用户

发布于 2011-07-13 21:17:05

代码语言:javascript
复制
#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);
    }
}
票数 4
EN

Stack Overflow用户

发布于 2011-07-13 21:28:58

如果你只想打印子字符串...

代码语言:javascript
复制
char s[] = "THESTRINGHASNOSPACES";
size_t i, slen = strlen(s);
for (i = 0; i < slen; i += 4) {
  printf("%.4s\n", s + i);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6679204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档