Поиск наиболее длинного слова в строке! С++
Помогите подправить код, пожалуйста! Сейчас в данной программе идет поиск слова с наибольшей длинной, но на выходе я пишу не само слово, а сколько символов содержит это слово, почему-то работает некорректно. Помогите найти тут ошибку и подправить код, чтобы на выходе он выдавал мне еще само слово.
#include
#include
#include
#include
using namespace std;
int main()
{
char str [10];
printf ("string? ");
fgets(str, 11, stdin);
int max, test, length;
test=0;
for (length=0; (length<11) && (str[length]!=0); length++) max++; //пусть первое слово - максимальное
for (length=0; length<11; length++){ //сравниваю остальные слова с первым и если какое-то из них больше, то записываю его
if (str[length]==0) {
if (test>max) {
max=test;
test=0;
}
else test=0;
}
else test++;
}
printf("%d", max);
getchar();
}