хорошо, у меня проблема с упражнениями. У меня есть задача, которая говорит мне, что мне нужно изменить функцию ( skipWords () ), чтобы она вместо возврата указателя на первую букву в выбранном слове возвращала указатель на последнюю букву в том же слове. Похоже, я не могу ничего изменить в любой другой функции, кроме skipWords () .
Вот пример EXECUTION :
Напиши предложение: привет тебе
Какое слово вы хотите напечатать? 1
о
Мой код:
#include<stdio.h>
#include<strings.h> // We include this library to manipulate text strings.
#include<ctype.h>
#define SIZE 100
int printFirstWord(char *pointer)
{
int i;
int length=strlen(pointer);
for(i=0; i<length; i++)
{
if(isalpha(pointer[i])!=0)
{
printf("%c",pointer[i]);
}
else if(isalpha(pointer[i])==0)
{
break;
}
}
return 0;
}
char *skipWords(char sentence[],int words)
{
int count=0,x,i;
int length=strlen(sentence);
char *pointer;
if(words==0)
{
pointer=&sentence[0];
}
else
{
for(i=0; i<length; i++)
{
if(isalpha(sentence[i])==0)
{
x=i+1;
count=count+1;
pointer=&sentence[x];
}
if(i==(length-1))
{
pointer=NULL;
break;
}
if(count==words)
{
break;
}
}
}
return pointer;
}
void printWord(char sentence[], int wordNumber)
{
char *pointer;
int length;
length=strlen(sentence);
int i;
pointer=skipWords(sentence,wordNumber);
if(pointer==NULL)
{
printf("This word doesn't exist");
return ;
}
printFirstWord(pointer);
}
int main()
{
char sentence[SIZE];
int length;
int words;
int check=1;
while(check==1)
{
printf("Write a sentence; ");
gets(sentence);
length=strlen(sentence);
printf("\nWhich word should be printed? ");
scanf(" %d",&words);
printWord(sentence, words);
printf("\n Do you want to enter a new sentence (press 1 to say yes)?");
scanf("%d",&check);
getchar();
}
return 0;
}
Моя проблема в том, что я не уверен, что мне нужно изменить, я пробовал большую часть дня, и все мои попытки получить его потерпели неудачу.