|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
NK wrote:
> 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 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Dec 26, 11:33 pm, NK <nagendra...@gmail.com> wrote:
> 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... |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On 26 Dec, 18:33, NK <nagendra...@gmail.com> wrote:
> 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[] |
|
![]() |
| Outils de la discussion | |
|
|