Не използвайте strlen в цикли

char s[]="test test";
for(int i=0; i<strlen(s); i++)
{
...
}

Всяко извикване на strlen предизвиква обхождането на низа от началото до края му. Това е много неефективно при голяма дължина на низа. За да определите дали сте стигнали до края на низа, може да използвате s[i] != `\0` .

char s[]="test test";
for(int i=0; s[i] != `\0` ; i++)
{
...
}