gets(str);
while(*(str++) != '\0'){
・・・
}
というでわないのか?