, , . , .
string.h:
strtok((char* p,char separator) - , p, , separator. (NULL);
strcpy(char* s1,char* s2) s2 s1;
strcat(char* s1,char*s2) s1 s2. s1 - \0 s2;
strstr(char* s1,char* s2) s2 s1. , , , .
: , , , , .
1. :
char inp[80], //
rez[80]=" ", // -
p1[80]; //
2. :
cout<<"\nInput string\n";
cin.getline(inp,80);
3.
char *p; /* p */
int k=1; /* , strtok */
do
{p = strtok((k?inp:NULL), " ");
/* inp, p. strtok ?:. k =1, 䳿 inp, , */
k=0;
/* k 0, 䳿 NULL, . inp */
if (p) cout<<endl<<p;// ,
//
}while(p); /* , , */
4. . , , , . , , . , , .
if (p) // p
|
|
{ cout<<endl<<p;
strcpy(p1," ");// ,
strcat(p1,p); /*
strtok p*/
strcat(p1," ");// p1
if(!strstr(rez,p1)) // p1 rez
{strcat(rez,p); //
// p
strcat(rez," ");//
//
}
}
䳺 strstr. , . . , . , , . , : , , . , . p1
5. , .
#include <string.h>
#include <iostream.h>
#include <conio.h>
void main()
{ char inp[80],rez[80]=" ",p1[80];
char *p;
cout<<"\nInput string\n";
cin.getline(inp,80);
int k=1;
do
{p = strtok((k?inp:NULL), " ");
k=0;
if (p)
{ cout<<endl<<p;
strcpy(p1," ");
strcat(p1,p);
strcat(p1," ");
if(!strstr(rez,p1)) {strcat(rez,p);
strcat(rez," ");}
}
}while(p);
cout<<endl<<"rez ="<<rez;
getch();
}