En C ++, je reçois une erreur de compilation que je ne peux pas comprendre

Frère T .:

Voici mon code, il inverse simplement la phrase:

#include <iostream>
#include <string>   

using namespace std;

int main()
{
    string sentence;
    string reversedSentence;
    int i2 = 0;

    cout << "Type in a sentence..." << endl;
    getline(cin, sentence);

    for (int i = sentence.length() - 1; i < sentence.length(); i--)
    {
        reversedSentence[i2] = sentence[i];
        i2++;
    }

    cout << reversedSentence << endl;
}

La compilation fonctionne bien, mais lorsque j'essaie d'exécuter le programme, cela se produit:

Type in a sentence...
[input]
/home/keith/builds/mingw/gcc-9.2.0-mingw32-cross-native/mingw32/libstdc++-v3/include/bits/basic_string.h:1067: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = unsigned int]: Assertion '__pos <= size()' failed.
cigien:

Votre reversedSentencechaîne est vide, donc son indexation appelle un comportement indéfini. Au lieu de cela, vous pouvez utiliser push_backcomme ceci:

for (int i = sentence.length() - 1; i >= 0; i--)
{
    reversedSentence.push_back(sentence[i]);
}

Notez également que votre condition de boucle doit être modifiée. sentenceSi static_castle cas est vide, vous devez le .length()faire intavant de soustraire de 1, comme ceci:

for (int i = static_cast<int>(sentence.length()) - 1; i >= 0; i--)
{
    reversedSentence.push_back(sentence[i]);
}

Vous pouvez également simplement utiliser un algorithme pour cela:

reversedSentence = sentence;
std::reverse(reversedSentence.begin(), reversedSentence.end());

Cela évite les complications lorsque la sentencechaîne est vide.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Je reçois une erreur, je ne peux pas convertir int* en int, mais je ne peux pas comprendre exactement ce qui en est la cause

Je reçois une erreur dans un manifeste json que je ne peux pas localiser lors de la diffusion de mon projet vue

Etrange erreur ECONNRESET que je ne peux pas comprendre

je reçois une erreur not aNaNunction et je ne peux pas savoir pourquoi

Tentative de validation du formulaire Spring Boot avec thymeleaf, mais obtention d'une erreur que je ne peux pas comprendre

Je ne peux pas comprendre mon erreur de socket Python

Je ne peux pas comprendre, erreur de syntaxe Mysql

Clicker simple dans l'unité et l'erreur que je ne peux pas comprendre C #

Segfault de bibliothèque partagée ; je ne peux pas comprendre l'erreur valgrind

Erreur de redéfinition de la classe C ++ - Je ne peux pas comprendre cela pour la vie en moi

Je ne peux pas comprendre pourquoi python m'a donné une erreur de type

Sortie de ce programme C je ne peux pas comprendre

Je ne comprends pas une erreur valgrind que je reçois

Pourquoi est-ce que je reçois une erreur indiquant que je ne peux pas concaténer deux types de données différents même après avoir converti le type de données des champs

Je ne peux pas insérer les informations de mon formulaire dans ma base de données.Je reçois toujours une erreur 404

Je ne peux pas comprendre pourquoi Ajax renvoie une erreur même lorsque je retourne json

Comment puis-je résoudre l'erreur d'index de liste en python? je ne peux pas le comprendre

Un code C simple de 7 lignes que je ne peux pas comprendre

Je reçois toujours une erreur de compilation disant que css non valide après une double et triple vérification, je n'arrive pas à trouver l'erreur

Arguments de ligne de commande en C, je ne peux pas comprendre son comportement

Je reçois une erreur et je ne trouve pas de moyen de la résoudre

Je ne peux pas comprendre le résultat de la fonction Macro en langage C

je reçois une exception de pointeur nul, je ne trouve pas l'erreur ici

Le compilateur mingw gcc renvoie une erreur que je ne peux pas comprendre, lorsque j'essaie d'imprimer 1 à 10 nombres en utilisant la récursivité

Pourquoi est-ce que je reçois une erreur de syntaxe lors de la compilation?

Vous ne comprenez pas l'erreur que je reçois?

Erreur de "Manquant ;" que je ne peux pas résoudre

Python Power set, je ne peux pas comprendre mon erreur

Apprendre avec Codecademy, je ne peux pas comprendre cette erreur

TOP liste

  1. 1

    Filtrer le dataframe basé sur plusieurs colonnes d'un autre dataframe

  2. 2

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  3. 3

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  4. 4

    Comment envoyer plusieurs variables de la lame au contrôleur

  5. 5

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  6. 6

    Microsoft.WebApplication.targets

  7. 7

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  8. 8

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  9. 9

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  10. 10

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  11. 11

    Concaténer des variables dans ansible

  12. 12

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  13. 13

    Filtrer les données en fonction des conditions d'une trame de données

  14. 14

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  15. 15

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  16. 16

    comment afficher un bouton au-dessus d'un autre élément ?

  17. 17

    php ajouter et fusionner des données de deux tables

  18. 18

    Stop jQuery execution after one time execution

  19. 19

    Pourquoi Phantomjs ne fonctionne pas avec ce site ?

  20. 20

    obtenir le nombre de marqueur affiché sur la carte

  21. 21

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

chaudétiquette

Archive