Se dă un şir de caractere ce conţine cuvinte formate din litere mici ale alfabetului englez, separate prin unul sau mai multe spații.
Cerinţa
Să se afişeze şirul obţinut după eliminarea din șir unor spații, astfel încât între cuvinte să fie un singur spațiu și să nu nu existe spații înainte de primul cuvânt și nici după ultimul .
Date de intrare
Programul va citi de la tastatură şirul dat.
Date de ieşire
Programul va afişa pe ecran şirul transformat corespunzător.
Restricţii şi precizări
șirul dat va conține cel mult 255 caractere, litere mici ale alfabetului englez și spații
Exemplu
Intrare
in vacanta plec la mare (e spatiu si dupa mare)
Ieşire
in vacanta plec la mare
artur99:
pff :)) in php era destul un trim($var) apoi str_replace(" ", " ", $var) si gata =))
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
#include <string>
using namespace std;
int main(){
string str;int i;
getline(cin, str);
while(str[0]==' ') str.erase(0,1);
while(str[str.length()-1]==' ') str.erase(str.length()-1,1);
for(i=0;i<str.length();i++){
cout<<str[i];
if(str[i]==' '&&str[i+1]==' ')i++;
}
return 0;
}
**////////////EDIT - acu inlocuieste si daca sunt 3 sau mai multe spatii unul dupa altul/////////////**
#include <iostream>
#include <string>
using namespace std;
int main(){
string str;unsigned int i;
getline(cin, str);
while(str[0]==' ') str.erase(0,1);
while(str[str.length()-1]==' ') str.erase(str.length()-1,1);
for(i=0;i<str.length();i++){
cout<<str[i];
int k=0;
if(str[i]==' ')while(1){
if(str[i+k+1]==' ')k++;
else break;
}
i+=k;
}
return 0;
}
#include <string>
using namespace std;
int main(){
string str;int i;
getline(cin, str);
while(str[0]==' ') str.erase(0,1);
while(str[str.length()-1]==' ') str.erase(str.length()-1,1);
for(i=0;i<str.length();i++){
cout<<str[i];
if(str[i]==' '&&str[i+1]==' ')i++;
}
return 0;
}
**////////////EDIT - acu inlocuieste si daca sunt 3 sau mai multe spatii unul dupa altul/////////////**
#include <iostream>
#include <string>
using namespace std;
int main(){
string str;unsigned int i;
getline(cin, str);
while(str[0]==' ') str.erase(0,1);
while(str[str.length()-1]==' ') str.erase(str.length()-1,1);
for(i=0;i<str.length();i++){
cout<<str[i];
int k=0;
if(str[i]==' ')while(1){
if(str[i+k+1]==' ')k++;
else break;
}
i+=k;
}
return 0;
}
Răspuns de
2
#include <iostream>
#include <string>
using namespace std;
int main()
{
string n;
getline(cin, n);
for(int i=0, f=0; i < n.length(); i++) {
if(n[i] == ' ')
if(f) { cout << ' ', f = 0; }
else continue;
else { cout << n[i], f = 1; }
}
return 0;
}
#include <string>
using namespace std;
int main()
{
string n;
getline(cin, n);
for(int i=0, f=0; i < n.length(); i++) {
if(n[i] == ' ')
if(f) { cout << ' ', f = 0; }
else continue;
else { cout << n[i], f = 1; }
}
return 0;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă