Problem z funkcją insert
Ostatnio zmodyfikowano 2015-11-22 19:48
Jasiu1047 Temat założony przez niniejszego użytkownika |
Problem z funkcją insert » 2015-11-22 13:01:46 Dzień dobry! Mam problem ze stworzonym programem który ma wyświetlić napis złożony z dwóch napisów od odpowiedniego miejsca w pierwszym napisie. Posłużyłem się funkcją insert. Natomiast po wpisaniu większej liczby program wyświetla mi błąd typu "The application has requested the Runtime to terminate...." Załączam listing programu:
#include <iostream> #include <cstring> #include <stdio.h> using namespace std;
int main() { int n; string napist; string napiss; cout<<"Wpisz pierwszy napis:"; cin>>napist; cout<<"Wpisz drugi napis:"; cin>>napiss; cout<<"Wpisz wartosc n:"; cin>>n; napist.insert(n,napiss); cout<<napist; getchar(),getchar(); return 0; } Za wszelką pomoc dziękuje! |
|
carlosmay |
» 2015-11-22 13:55:04 Jeśli podasz 'n' większą niż indeks w tablicy 'napist' (string to tablica char), to wychodzisz poza zakres tablicy i jest błąd. int main() { int n; string napist; string napiss; cout << "Wpisz pierwszy napis:"; cin >> napist; size_t len = napist.size(); cout << "Wpisz drugi napis:"; cin >> napiss; cout << "Wpisz wartosc n:"; cin >> n; while( n > len ) cin >> n; napist.insert( n, napiss ); cout << napist; getchar(), getchar(); return 0; }
|
|
Jasiu1047 Temat założony przez niniejszego użytkownika |
» 2015-11-22 17:23:12 Myślałem jeszcze nad tym aby po wpisaniu większego n od długości wpisywal w wolne miejsca puste pola czyli spacje. |
|
carlosmay |
» 2015-11-22 17:25:25 To dopisz kod, który to robi. |
|
Jasiu1047 Temat założony przez niniejszego użytkownika |
» 2015-11-22 17:55:57 Jest jakas funkcja podobna do cout.setf tylko z zastosowaniem do stringów? |
|
carlosmay |
» 2015-11-22 19:26:48 Oblicz różnice między długością stringa, a podaną liczbą i dodaj na koniec tyle razy spację. for( int i = 0; i < 5; i++ ) napist += " ";
|
|
Jasiu1047 Temat założony przez niniejszego użytkownika |
» 2015-11-22 19:48:38 dziękuje za pomoc |
|
« 1 » |