No, not correct. You are passing a string (gets returns strings) to a
list operator. Never apply list operators (lindex) to string values.
Convert your string into a proper list first. If you want non white
space tokens separated by runs of whitespace, then this works well:
regexp -all -inline {\S+} <your string here>
I.e.:
$ rlwrap tclsh
% set x "a b { c d"
a b { c d
% lindex $x 1
unmatched open brace in list
% set y [regexp -all -inline {\S+} $x]
a b \{ c d
% lindex $y 1
b
If you know you have only single character separators, then 'split'
works great for those.