将特定数量的字符从一个字符串复制到另一个字符串

标签 c string buffer

我有一个可变长度的字符串,我试图将其与加号分开并研究:

            char string[] = "var1+vari2+varia3";
            for (int i = 0; i != sizeof(string); i++) {               
                memcpy(buf, string[0], 4);
                buf[9] = '\0';
            }

由于变量的大小不同,我正在尝试编写一些将字符串带入循环并提取(除法)变量的东西。有什么建议 ?我期待的结果如下:

var1
vari2
varia3

最佳答案

您可以使用strtok()按分隔符分隔字符串

   char string[]="var1+vari2+varia3";
   const char delim[] = "+";
   char *token;
   
   /* get the first token */
   token = strtok(string, delim);
   
   /* walk through other tokens */
   while( token != NULL ) {
      printf( " %s\n", token );
    
      token = strtok(NULL, delim);
   }

有关 strtok() 的更多信息:https://man7.org/linux/man-pages/man3/strtok.3.html

关于将特定数量的字符从一个字符串复制到另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63460129/

相关文章:

c - 链表字符指针scanf输入

c - 函数指针赋值,为什么通过指针调用这个函数会导致段错误?

r - 一行中的几个替换 R

buffer - 当 Clickhouse 表连续填充 INSERT INTO 时,SELECT 查询性能影响

C# UDP 发送缓冲区

c++ - DX11 最小缓冲区大小

创建写入文件的线程

编译错误 : request for member in something not a structure or union

c++ - 通过 string::insert 插入 char 时出错

string - 小写 Racket 中的整个字符串