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

PHPz
Lepaskan: 2023-08-27 10:21:05
ke hadapan
1240 orang telah melayarinya

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);
Salin selepas log masuk

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”
Salin selepas log masuk

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

Input: “Tutorials Point”
Result: “TutorialsPoint”
Salin selepas log masuk

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

Input: “ ”
Result: 
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

Aforapple,bforball
Salin selepas log masuk
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

Aforapple,bforball
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!