Dans la partie suivante du code de swap de chaîneInversion de chaîne en C++
end = &str[len - 1];
je ne comprends pas la partie d'adressage. Quand je le fais sans la partie d'adressage il continue à courir mais me donne un avertissement que "des valeurs de type char ne peuvent pas être assignées à l'identité de type char". Voici le code complet:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[] = "This is a test";
char *start, *end;
int len;
int t;
cout << "Original " << str << "\n";
len = strlen(str);
start = str;
end = str[len - 1];
//this reverses the string
while (start < end) {
t = *start;
*start = *end;
*end = t;
start++;
end--;
}
cout << "Reversed" << str << "\n";
system("PAUSE");
return 0;
}
* "Chaîne d'inversion dans ** C++ **" * pas comme ceci, s'il vous plaît. Pas comme ça. Je respecte les programmeurs C et C, et ce qui leur appartient, doit leur être donné. Vous avez un type dédié pour les chaînes, vous avez des algorithmes, vous avez 'swap' ... C++ n'est pas seulement' cout'. Désolé, pour me plaindre, mais je me sens un peu attristé. – luk32
Je travaille sur des exemples à travers un manuel. – Jeff
Je le signalerais en rouge. Sérieusement. Je le considérerais comme nuisible. Cela vous apprend des choses obsolètes. Vous n'auriez jamais un tel problème dans un programme C++ approprié ... ou est-ce un livre C? Cela ressemble à du code C avec 'cout'. C'est ainsi que les programmeurs C ont enseigné le C++ il y a 15-20 ans. Au moins c'est mon expérience. – luk32