Connecting Tech Pros Worldwide Help | Site Map

swap char array.

NK
Guest
 
Posts: n/a
#1: Dec 26 '07
char *a="nnnnnnn fgjfjgjf";
char *b="ABC jjjjjjjjjhhhh";

to swap these two string......
this swap fn is working

template<class T>
void Swap( const T *&a,const T *&b)//no need to write const
{
T *temp;
temp=a;

a=b;

b=temp;


}



but to swap


char a[]="nhfhdhfhh fgjfjgjf";
char b[]="ABC jjjjjjjjjhhhh";

these char array its not.
why?
how a[] and b[] can be swapped?
give effficient soln.
don't use swap fn of string library(string1.swap(string2))



Thanx in advance
red floyd
Guest
 
Posts: n/a
#2: Dec 26 '07

re: swap char array.


NK wrote:
Quote:
char *a="nnnnnnn fgjfjgjf";
char *b="ABC jjjjjjjjjhhhh";
>
to swap these two string......
this swap fn is working
>
template<class T>
void Swap( const T *&a,const T *&b)//no need to write const
{
T *temp;
temp=a;
>
a=b;
>
b=temp;
>
>
}
>
>
>
but to swap
>
>
char a[]="nhfhdhfhh fgjfjgjf";
char b[]="ABC jjjjjjjjjhhhh";
>
these char array its not.
why?
how a[] and b[] can be swapped?
give effficient soln.
don't use swap fn of string library(string1.swap(string2))
>
>
Here you go:

http://www.parashift.com/c++-faq-lit...t.html#faq-5.2
Rahul
Guest
 
Posts: n/a
#3: Dec 27 '07

re: swap char array.


On Dec 26, 11:33 pm, NK <nagendra...@gmail.comwrote:
Quote:
char *a="nnnnnnn fgjfjgjf";
char *b="ABC jjjjjjjjjhhhh";
>
to swap these two string......
this swap fn is working
>
template<class T>
void Swap( const T *&a,const T *&b)//no need to write const
{
T *temp;
temp=a;
>
a=b;
>
b=temp;
>
}
>
but to swap
>
char a[]="nhfhdhfhh fgjfjgjf";
char b[]="ABC jjjjjjjjjhhhh";
>
these char array its not.
why?
how a[] and b[] can be swapped?
give effficient soln.
don't use swap fn of string library(string1.swap(string2))
>
Thanx in advance
swap function could also check if both the reference are pointing to
same variable or not...
tragomaskhalos
Guest
 
Posts: n/a
#4: Dec 27 '07

re: swap char array.


On 26 Dec, 18:33, NK <nagendra...@gmail.comwrote:
Quote:
char *a="nnnnnnn fgjfjgjf";
* char *b="ABC jjjjjjjjjhhhh";
>
to swap these two string......
*this swap fn is working
>
template<class T>
void Swap( const T *&a,const *T **&b)//no need to write const
{
* * *T *temp;
* * *temp=a;
>
* * *a=b;
>
* * *b=temp;
>
}
>
but to swap
>
char a[]="nhfhdhfhh fgjfjgjf";
* * * *char b[]="ABC jjjjjjjjjhhhh";
>
these char array its not.
why?
how a[] and b[] can be swapped?
give effficient soln.
don't use swap fn of string library(string1.swap(string2))
>
Thanx in advance
Obviously homework, but it's Christmas ...

You can't do this directly - arrays are not assignable.
You could do a character-by-character swap, but then
what if the arrays are of different lengths?

But all of this is academic, you can achieve what you
need like this:

char a[]="nhfhdhfhh fgjfjgjf";
char b[]="ABC jjjjjjjjjhhhh";

char* ap = a;
char* bp = b;

// use ap for a, bp for b

std::swap(ap, bp);

// ap now points to b[], bp to a[]


Closed Thread