A doua linie
Fiind dat un text aflat pe mai multe linii, să se afișeze a doua linie din text.
În cazul în care textul nu conține minim 2 linii se va afișa text prea scurt.
Date de intrare
Un text aflat pe mai multe linii.
Date de ieșire
Pe ecran se va afișa a doua linie din text.
Restricții
Textul va conține maxim 20 de linii, iar fiecare linie conține maxim 100 caractere.
Atunci când textul conține minim 2 linii, fiecare linie va conține minim 1 caracter diferit de spațiu.
Exemplu
Date de intrare
ana invata sa programeze
ea crede ca programarea nu e grea
daca rezolvi suficiente probleme
si esti harnic
Date de ieșire
ea crede ca programarea nu e grea
Ma puteti ajuta va rog, cu o rezolvare in c++ sa utilizeze, string-uri iar textul sa fie citit de la tastatura, va rog fara fisiere. Multumesc!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <cstring>
int main()
{
std::string text;
std::getline(std::cin, text, '\0');
std::size_t inceput = text.find('\n');
if (inceput == std::string::npos) {
std::cout << "Cam scurt" << std::endl;
return 0;
}
std::size_t sfarsit = text.find('\n', inceput + 1);
if (sfarsit == std::string::npos) {
sfarsit = text.length();
}
std::cout << "Rândul 2: " << text.substr(inceput + 1, sfarsit - inceput - 1) << std::endl;
}
Explicație:
Am ales o abordare puţin diferită față de rezolvarea ce ai primit ieri: citesc tot folosind un singur apel de getline(), apoi caut primele 2 caractere \n și returnez ce-i între ele.
Ironia sorţii că fix acum ai trecut la string. În char[] se putea face getline() la doar 2 * 100 caractere să nu mai citești tot inputul dacă după al 2-lea rând nu te mai interesează.
#include "iostream"
#include "cstring"
using namespace std;
int main()
{
string text;
getline(cin, text, '\0');
size_t inceput = text.find('\n');
if (inceput == string::npos) {
cout << "Cam scurt" << endl;
return 0;
}
size_t sfarsit = text.find('\n', inceput + 1);
if (sfarsit == string::npos) {
sfarsit = text.length();
}
cout << "Rândul 2: " << text.substr(inceput + 1, sfarsit - inceput - 1) << endl;
}
#include
using namespace std;
int main(){
string txt;
int nr_line = 0;
while (getline(cin, txt)) {
++nr_line;
if (nr_line == 2) {
cout << txt;
}
}
if (nr_line < 2) {
cout <<"text prea scurt";
}
return 0;
}