strings sind char arrays, deren letztes byte 0 ist.
wenn du mit char test[]="test"; einen string erzeugst, hat dieser nicht 4 sondern 5 bytes. strings ohne \0 kannst du notfalls verwenden, wenn du ihre exakte länge (bei dir 6 zeichen) kennst, und nicht überschreitest.
for(i=0;i<6;i++)send(test[i]);
sobald du aber "while(...!=0){}" verwendest, musst du mit 0 terminieren, sonst weiss der µC/prozessor nicht, wie lang der string ist.