#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char* get_word(char* str)
{
char tab[1000] = {0};
char *wtab = tab;
int i = 0;
if(str == NULL)
{
return NULL;
}
for(; *str; str++)
{
if(((*str >= 'a') && (*str <= 'z')) || ((*str >= 'A') && (*str <= 'Z')))
{
*(wtab + i) = *str;
i++;
if(*(str + 1) == ' ' || *(str + 1) == '\t' || *(str + 1) == 39 || *(str + 1) == '\0' || *(str + 1) == '\n' || *(str + 1) == '.' || *(str + 1) == '-' || *(str + 1) == 0 || *(str + 1) == 34)
{
str = wtab;
return (char*)str;
}
}
}
return NULL;
}
int main()
{
char tab1[1000] = {0};
printf("Podaj tekst: ");
scanf("%1000[^\n]", tab1);
printf("%s", get_word(tab1));
return 0;
}
Funkcja str ma zwracać pierwszy wyraz w ciągu znaków. Zrobiona przeze mnie funkcja robi to jednak po wrzuceniu zadania do testowania pojawia się komunikat : Pointer to local array variable returned. Komunikat dotyczy 25 linijki. Ktoś wie co mógłbym tutaj poprawić?