作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何以最快的方式拆分 const char *
字符串。
char *inputStr="abcde";
char buff[500];
我想在缓冲区中有以下格式化字符串,其格式必须是:
IN('a','ab','abc','abcd','abcde')
我正在学习 C,并且是该语言的新手。我不知道从哪里开始解决这个 split 问题。
最佳答案
我认为你不能特别“快”地做到这一点,它似乎受到很大的限制,因为它需要多次迭代源字符串。
我会做这样的事情:
void permute(char *out, const char *in)
{
const size_t in_len = strlen(in);
char *put;
strcpy(out, "IN(");
put = out + 3;
for(i = 1; i < in_len; ++i)
{
if(i > 1)
*put++ = ',';
*put++ = '\'';
memcpy(put, in, i);
put += i;
*put++ = '\'';
}
*put++ = ')';
*put++ = '\0';
}
请注意,这不能防止输出中的缓冲区溢出。
关于c - 如何在C中检索字符串的多个子字符串并将它们写入一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19535622/
我是一名优秀的程序员,十分优秀!