void clean(char *src)
{
char *temp;
char result[256];
char *p=" ";
temp=strtok(src,p);
if (fmod((strlen(temp)),2)!=0)
{
strcpy(result,temp);
strcat(result,p);
}
do
{
temp=strtok(NULL,p);
if (fmod(strlen(temp),2!=0))
{
strcat(result,temp);
strcat(result,p);
}
}
while (temp!=NULL);
cout <<"Result= "<< result << '\n';
}
Удаление из строки слов четной длины [C++ (DOS) ]
написал функцию для удаления из строки слов четной длинны, но при втором вызове srtlen прога вылетает с ошибкой, подскажите что не так
Код:
#include <iostream>
using namespace std;
void clean(char *src)
{
char *token;
char seps[] = " ";
token = strtok( src, seps );
while( token != NULL )
{
if(strlen(token) %2 != 0)
cout<<token<<' ';
token = strtok( NULL, seps );
}
}
int main()
{
char str[] = "123 4567 898 234234";
clean(str);
return 0;
}
using namespace std;
void clean(char *src)
{
char *token;
char seps[] = " ";
token = strtok( src, seps );
while( token != NULL )
{
if(strlen(token) %2 != 0)
cout<<token<<' ';
token = strtok( NULL, seps );
}
}
int main()
{
char str[] = "123 4567 898 234234";
clean(str);
return 0;
}
печатает слова только нечетной длины.
в твоей функции надо использовать цикл while, а не do...while