【发布时间】:2021-04-08 23:47:50
【问题描述】:
我正在尝试拆分此字符串:
这是一个文本文件
找猫这个词
该程序还应该打印猫
还有 crat 和 lcat 但它不应该
打印单词 caats
放入一个二维数组,使得文本中的每一行都是数组中的一行。
例如:
lines[0][0] = 't'
lines[0][1] = 'h'
等等。现在,这是我的代码:
void print_lines(char txt[]){
char lines[SIZE][SIZE];
int num_of_lines = fill_lines(txt, lines);
printf("lines: %d\n",num_of_lines );
int i;
for (i = 0; i < num_of_lines; i++)
{
printf("%s\n", lines[i]);
}
}
int fill_lines(char txt[], char lines[][]){
char copy[strlen(txt)];
memcpy(copy, txt, strlen(txt));
char *line = strtok(copy, "\n");
int i = 0;
while(line != NULL){
strcpy(lines[i][0], line);
line = strtok(NULL, "\n");
i++
}
return i + 1;
}
我目前正在处理的问题是strcpy(lines[i], line) 中的一个错误,内容如下:
表达式必须是指向完整对象类型的指针
我也试过memcpy(lines[i], line, strlen(line))。
任何帮助将不胜感激。
【问题讨论】:
-
您的问题是
fill_lines函数的参数语法错误。 -
再看一遍后,我发现整个代码似乎不是
C语言。