Mon IDE est Xcode. Le code suivant ne peut pas s'exécuter comme prévu. Bien que nullptr soit recommandé dans la norme plus récente de C++.
#include
using namespace std;
int count_x(char * p, char x)
{
if(p==nullptr)return 0;
int count = 0;
for (; p!=nullptr; ++p)
if(*p == x)
++count;
return count;
}
int main()
{
char str[] = "Je suis une petite fille dans le petit monde !";
cout<<"le nombre de t dans la chaîne est "<
``
Le code ci-dessus peut être compilé avec succès, mais lorsque je l'ai exécuté, je n'ai pas pu obtenir la sortie attendue. En mode débogage, j'ai découvert que la boucle for ne s'arrêtait pas. J'ai donc modifié le code comme suit :
#include
using namespace std;
int count_x(char * p, char x)
{
if(p==nullptr)return 0;
int count = 0;
for (; *p!='\0'; ++p)
if(*p == x)
++count;
return count;
}
int main()
{
char str[] = "Je suis une petite fille dans le petit monde !";
cout<<"le nombre de t dans la chaîne est "<
`
Après avoir changé p!=nullptr en *p!='\0', le code a fonctionné correctement et la sortie attendue a été obtenue. Bien que le code semble fonctionner, je ne comprends toujours pas la raison de l'échec ou du succès.
Pouvez-vous me donner quelques indices ou suggestions? Merci.
` ``