Символьные массивы на C.
По задаче нужно выбрать предложения с определенным количеством слов (3).
Вот код:
// ConsoleApplication2.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include
#include
#include
int count(char *);
void func(char mas[],int r);
int main(int argc, char *argv[])
{
char mas2[]=" odin dva tri. ctihe ubd. ujfot jionf kjfilnju. i.";
int y;
y=3;
func(mas2,y);
system("PAUSE");
return 0;
}
int count(char *string)
{
int index=0;
char *token,*tokenize;
tokenize=(char *)malloc(strlen(string)*sizeof(char));
strcpy(tokenize,string);
token = strtok( tokenize," " );
while( token != NULL )
{
index++;
token = strtok( NULL, " " );
}
return index;
}
void func(char mas[],int r)
{
char *token,*tokenize;
int index=1;
tokenize=(char *)malloc(strlen(mas)*sizeof(char));
strcpy(tokenize,mas);
token = strtok( tokenize,"." );
while( token != NULL )
{
index=count(token);
if(index==r)
printf("%s\n",token);
token = strtok( NULL, "." );
}
}
Надеюсь он полностью копировался. Код работает не правильно, а именно выводит только первое предложение. Проблема в функции void func().
Если в цикле этой функции вызывать функцию count(), то цикл совершается только один раз. Если не вызывать, то цикл работает нормально.