我创建了一个循环,它从test.txt文件中逐行获取行。 内部测试中有一个简单的无意义文本:
int main(int argc, char *argv[])
{
return abc, def;
}
我的程序的目的是将它带到零件。 例如:取词" argc,"并将其保存到数组[2]。
我的代码:
char break1[] = "- \t\n\0;)(";
char* array[x];
char* Buffor;
int intlength = 0;
int a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0, i=0, j=0, k=0, l=0, m=0;
FILE * File;
Plik = fopen("Test.txt", "r");
char Line[150];
while(!feof(File))
{
fgets(Line, 150, File);
Buffor = strtok(Line, Break1);
while(Buffor != NULL)
{
if(c==1)
{
array[i]=Buffor;
printf("\n%s for %d", array[i], i);
i++;
b++;
if(strstr(Buffor, ";") != NULL)
{
c--;
}
}
if(d==1)
{
if(strstr(Buffor, "return") != NULL)
{
array[i]=Buffor;
printf("\n%s for %d", array[i], i);
c++;
i++;
b++;
d--;
}
}
if(a==1)
{
array[i]=Buffor;
printf("\n%s for %d", array[i], i);
i++;
b++;
if(strstr(Buffor, ")") != NULL)
{
a--;
d++;
}
}
if(strstr(Buffor, "int") != NULL)
{
intlength = strlen(Buffor);
if(intlength<5)
{
array[i]=Buffor;
printf("\n%s for %d", array[i], i);
i++;
b++;
a++;
}
}
Buffor = strtok(NULL, Break1);
}
问题是:我想从循环中取出的字符串(标记为红色)正在变为标记为橙色的字符串。我该如何保持红色?我尝试用指针制作但我还不够好......
顺便说一下。编译器没有给出任何错误或警告。
答案 0 :(得分:0)
好的,我已经知道了。 如果我知道那么简单...... 我所要做的就是改变这些界限:
array[i]=Buffor;
printf("\n%s for %d", array[i], i);
对于这些:
array[i]=malloc(strlen(Buffor) + 1);\
strcpy(array[i], Buffor);
printf("\n%s for %d", array[i], i);