Qualche funzione sugli array

/*funzione che aggiunge un carattere alla fine*/
void addchar(char *tmp,const char c)
{
	int i=0;
	/*scorre l'array fino alla fine*/
	while(tmp[i]!='\0')
	{
		i++;
	}
	/*al posto di '\0' aggiunge c*/
	tmp[i]=c;
	
	/* e dopo chiude la stringa*/
	tmp[i+1]='\0';
}

/*trova la lunghezza di un array*/
int lung(const char *v)
{
	int i=0;
	/*scorre l'array fino alla fine*/
	while(v[i]!='\0')
	{
		i++;
	}
	/*ritorna la lunghezza  non compreso '\0'*/
	return i;
}

/*trova la lunghezza di un array in maniera ricorsiva*/
int lung_(char *v)
{
static int i=-1;
i++;
if(*(v++)=='\0')
return i;
else
return lung_(v++);
}

/*swap due caratteri*/
void inv(char &a,char &b)
{
	char tmp=a;
	a=b;
	b=tmp;
	
}




/*inverso di un array*/
void invarr(char *c)
{
	int i=0,j=lung(c)-1;
	while(i<=j)
	{
		inv(c[i],c[j]);
		i++;
		j--;
	}
}