如何提取字符串的指定部分?

时间:2016-04-13 08:31:26

标签: c string

例如,我有一个字符串char str[40]="ABCD(ak47)" 然后我想把这部分放在毯子里面#34; ak47"来自字符串

我该怎么办?

这是我的代码,它不起作用:(

        char *result = strstr(str, ")");
        int endpos = str - result;
        int x = 0;
        for (int i = 5; i < endpos; i++) 
        {
            copy[x] = str[i];
            x++;
        }

顺便说一句,我发现有时候人们会使用char *str。如果使用char ptr,我们如何获得str[i]

2 个答案:

答案 0 :(得分:4)

  1. 尝试result = strchr(str,'(');
  2. 现在result指向字符串(
  3. 中的str
  4. result+1复制字符,直至获得)\0
  5. 如果读取的字符为),则终止字符串。

答案 1 :(得分:1)

看看我的实施。

#define STR_MAX 20
char str[]="ABCD(ak47)";
char copy[STR_MAX+1];
char *result = strchr(str, '(');
result++;
char *ptr;
for (ptr=copy; (*result != '\0') && (*result != ')');)
    *ptr++ = *result++;

*ptr = '\0';
printf("%s\n", copy);

在此实现中,我还没有修改原始字符串。我想你可能需要它进行进一步处理。