Well ... yes. And it's pretty obvious if you think about it.
You declare an array to hold the string the user enters (I'd make that bigger if I was you - it's pretty normal for even a single sentence to exceed 100 characters, this one does):
char text[100];
But then you read the string in past the end of it:
scanf("%s",&text[100]);
test[100] is an element outside the array: array indexes run from 0 to N - 1 where N is the number of elements in the array.
So you tell the system to read the data into "random memory" instead of into the area you set aside for it.
When you enter your loop, you try to use the original array space, and don't find any usable data in it.
Change it to this:
scanf("%s",text);
And it should help, because the name of an array is a pointer to the first element.
You would have spotted this almost immediately if you had used the debugger to look at what your code was doing while it was running ...