Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ untuk mengalih keluar ruang daripada rentetan menggunakan aliran rentetan

Program C++ untuk mengalih keluar ruang daripada rentetan menggunakan aliran rentetan

PHPz
PHPzke hadapan
2023-08-27 10:21:051301semak imbas

Program C++ untuk mengalih keluar ruang daripada rentetan menggunakan aliran rentetan

Seperti yang dinyatakan dalam soalan yang diberikan, kita perlu mengalih keluar ruang daripada rentetan menggunakan aliran rentetan. Seperti namanya, aliran rentetan menukar rentetan menjadi aliran. Ia berfungsi serupa dengan cin dalam C++. Ia dikaitkan dengan objek rentetan yang mempunyai akses kepada penimbal rentetan di mana ia disimpan.

string s =" a for apple, b for ball";
res = solve(s);

Menggunakan penimbal rentetan, kami akan membaca setiap perkataan satu demi satu dan menggabungkannya menjadi rentetan baharu, yang akan menjadi jawapan kami.

NOTA - Strim seperti rentetan tersedia dalam pengepala sstream C++, jadi kami perlu memasukkannya.

Mari kita lihat beberapa senario input/output

Dengan mengandaikan tiada ruang dalam input fungsi, output akan sama dengan input -

Input: “Tutorialspoint”
Result: “Tutorialspoint”

Dengan mengandaikan tiada ruang dalam input fungsi, hasil output akan menjadi rentetan tanpa ruang -

Input: “Tutorials Point”
Result: “TutorialsPoint”

Dengan mengandaikan bahawa input yang diterima oleh fungsi hanya mengandungi ruang, kaedah ini tidak dapat memberikan hasil output -

Input: “ ”
Result: 

Algoritma

  • Pertimbangkan rentetan input dengan aksara.

  • Menyemak sama ada rentetan kosong dan mengalih keluar sebarang ruang putih yang terdapat dalam input menggunakan kata kunci aliran rentetan.

  • Proses ini akan selesai sehingga penuding aliran rentetan mencapai penghujung baris.

  • Jika hujung baris rentetan dicapai, program ditamatkan.

  • Rentetan yang dikemas kini dikembalikan kepada hasil output.

Contoh

Sebagai contoh, kita mempunyai rentetan seperti "a singkatan untuk epal, b bermaksud bola" dan kita perlu menukarnya kepada "aforapple,bforball".

Ikuti kod terperinci untuk mengalih keluar ruang daripada input rentetan untuk menjadikannya aliran aksara -

#include <iostream>
#include <sstream>
using namespace std;
string solve(string s) {
   string answer = "", temp;
   stringstream ss;
   ss << s;
   while(!ss.eof()) {
      ss >> temp;
      answer+=temp;
   }
   return answer;
}
int main() {
   string s ="a for apple, b for ball";
   cout << solve(s);
   return 0;
}

Output

Aforapple,bforball

Contoh (menggunakan getline)

Kami mempunyai cara lain untuk menyelesaikan pertanyaan yang sama dalam C++ menggunakan getline.

#include <iostream>
#include <sstream>
using namespace std;
string solve(string s) {
   stringstream ss(s);
   string temp;
   s = "";
   while (getline(ss, temp, ' ')) {
      s = s + temp;
   }
   return s;
}
int main() {
   string s ="a for apple, b for ball";
   cout << solve(s);
   return 0;
}

Output

Aforapple,bforball

Kesimpulan

Kami melihat bahawa menggunakan aliran rentetan, rentetan disimpan dalam penimbal dan kita boleh mendapatkan rentetan secara verbatim dan menggabungkannya, mengalihkan ruang.

Atas ialah kandungan terperinci Program C++ untuk mengalih keluar ruang daripada rentetan menggunakan aliran rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam