A
Again
Ф-ция word возвращает n-ное слово из строки s (слово-любой набор символов кроме пробельных). Что нужно дописать в ф-цию для пропуска пробелов между словами, т. к. при вводе, например, следующей строки: "asd__fgh_jkl"(между asd и fgh 2 пробела)и вводе n=3 программа выдаёт "fgh", а должна выдавать "jkl".
C++:
#include <stdio.h>
#include <stdlib.h>
char w[40];
int word(char *s, int n)
{
char *p = w;
char *MyStr = s;
while (*MyStr == ' '||*MyStr=='\t')
MyStr++;
int nc = 0;
while (n> 1)
{
if (*MyStr == '\0'&& n >1)
{
printf("Takogo slova net\n");
return 0;
}
if (*MyStr ==' '||*MyStr=='\t')
n--;
MyStr++;
}
while ((*MyStr!=' '&&*MyStr!='\t'&&*MyStr!='\0') && nc<40)
{
*p++ = *MyStr++;
nc++;
}
return 0;
}
void main()
{
int n;
char s[1024]={0};
char *MyStr=s;
printf("Vvedite stroku : ");
gets(s);
if(*MyStr) printf("Nomer videl'aemogo slova : ");
else {
printf("Stroka pusta!\n");
exit (1);
}
scanf("%d",&n);
if (n<=0) {
printf( "n doljno bit' > 0\n" );
getch();
exit (2);
}
word( s, n );
printf( "%s\n", w );
}