C++新手问题,怎样将一个字符串按特定符号分割后存入其他的数组~

来源:百度知道 编辑:UC知道 时间:2024/06/15 19:55:30
char* a[3];
char* buf ="这是第一行\n这是第二行\n这是第三行\n";

我想要用'\n'符将buf分割成三段并分别存入a[1],a[2],a[3]中,
请问该怎么做~
麻烦高手们给个代码~我是新手~

自己看看有没有错。
#include <stdio.h>
#include <string.h>
#include <malloc.h>

int main()
{
char *a[3];
char *buf ="这是第一行\n这是第二行\n这是第三行\n";
char *t, *pre = buf;
int i = 0, l;

while (t = strchr(pre, '\n'))
{
if (i >= 3)
break;

l = t - pre;
a[i] = (char *)malloc(l + 1);
strncpy(a[i], pre, l);
a[i][l] = '\0';
++i;
pre = t + 1;
}

for (i = 0; i < 3; ++i)
{
printf("%s\n", a[i]);
free(a[i]);
}

return 0;
}

char* a[3];

你这个定义就有问题,这个 表示每行只有3个字符

你还不如
string s[3];

重新装下就行了

subString()