Так что я делаю несколько практических вопросов для выпускного экзамена. и у меня много проблем с динамической памятью.как поместить анализируемую строку внутри malloc/calloc/dynamic memory?
Так что вопрос хочет в основном разобрать через 2 разных источника и сравнить их, чтобы найти похожие слова. (один из файла csv и один из входа cgi)
поэтому я решил использовать malloc/calloc, чтобы поместить строку в каждый слот массива, а затем сравнить каждый слот. но у меня возникают некоторые проблемы с моим кодом:
char buffer[100],buffer2[100],tmp[100],line[100];
char *token,*tok,*input;
int main()
{
char s[100]="search=cat+or+dog+store";
char *search=(char*)calloc(10,sizeof(char));
strcpy(buffer,s);
sscanf(buffer,"search=%s",buffer);
int k=0;
tok=strtok(buffer,"+");
while(tok!=NULL)
{
strcpy(&search[k],tok);
k++;
tok=strtok(NULL,"+");
}
printf("%d\n",k);
strcpy(&search[k],"\0");
***printf("%s",&search[0]);
printf("%s",&search[1]);
printf("%s",&search[2]);
printf("%s",&search[3]);***
char* csv=(char*)calloc(10,sizeof(char));
char tmp2[100];
FILE *fp;
fp=fopen("web.csv","r");
while(fgets(line,sizeof(line),fp)!=NULL)
{
strcpy(buffer2,line);
token=strtok(buffer2,",");
while(token!=NULL)
{
strcpy(csv,token);
csv++;
token=strtok(NULL,",");
}
strcpy(csv,"\0");
free(csv);
free(search);
return(0);
}
- той частью я поставил между * я поставил, чтобы проверить, если строки были помещены внутри calloc. но ничего не распечатывается, или smt weird печатает. тот же код использовался для последней нижней части, и они оба либо пусты, либо только распечатывают странную фрагментированную часть кода.
- Когда я кладу бесплатный (csv) и свободный (поиск), он говорит, что «указатель, освобожденный, не был выделен». я искал его, но я не могу найти ответ на вопрос, почему он это делает?
спасибо!
'sscanf (buffer," search =% s ", buffer);'? Um ... – WhozCraig
его, чтобы избавиться от части строки «search =» переданной строки cgi, которая выглядит так: seach = dog + or + cat + store. Мне не нужна часть поиска – harekuin
[Как создать массив строк в C?] (http://stackoverflow.com/questions/1088622/how-do-create-an-array-of-strings-in -c) –