自己看看有没有错。
#include
#include
#include
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()