Rumah > pembangunan bahagian belakang > C++ > Terjemah yang berikut ke dalam bahasa Cina: Program C++ untuk menukar rentetan kepada terapung

Terjemah yang berikut ke dalam bahasa Cina: Program C++ untuk menukar rentetan kepada terapung

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-09-13 11:57:02
ke hadapan
1384 orang telah melayarinya

Terjemah yang berikut ke dalam bahasa Cina: Program C++ untuk menukar rentetan kepada terapung

Taipan statik digunakan dalam C++. Untuk menulis atur cara, pembolehubah mesti ditakrifkan sebagai jenis tertentu. Kadangkala input daripada konsol atau fail mesti dibaca. Dalam kes ini, program diberikan data rentetan. Operasi khas diperlukan untuk menukarnya kepada jenis data lain. Artikel ini akan menyediakan kaedah C++ untuk menukar rentetan kepada integer titik terapung. Terdapat beberapa kaedah berbeza yang boleh anda gunakan untuk mencapai ini. Terokai setiap daripada mereka secara berasingan.

Menggunakan aliran rentetan dalam C++

Strim ialah alat yang hebat dalam C++. Strim fail, strim input/output standard, dsb. ialah contoh strim ini. stringstream ialah aliran yang berbeza. Ia beroperasi dengan menerima rentetan sebagai input, serupa dengan aliran lain. Kita perlu mengimport fail pengepala sstream untuk menggunakan stringstream. Data penstriman boleh diperoleh menggunakan operator sisipan (>>) atau operator pengekstrakan (

Tatabahasa

#include < sstream >
stringstream streamObject ( <a string input> );
Salin selepas log masuk

Untuk membaca jenis input tertentu menggunakan aliran, sintaksnya adalah seperti berikut -

Tatabahasa

<data type> variable;
streamObject >> variable;
Salin selepas log masuk

Algoritma

Mari kita lihat algoritma untuk memahami cara ia berfungsi secara keseluruhan.

  • Ambil objek rentetan x sebagai input
  • Buat objek aliran rentetan, bernama ss, dan hantar x ke objek
  • Buat pembolehubah titik terapung xFloat
  • Simpan nombor titik terapung ke xFloat menggunakan operator sisipan dalam ss

Contoh

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   stringstream ss( myString );
   ss >> x;
   return x;
}

int main()
{
   string aNumber = "3.14159";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "6.5 more than the given number is: " << convNumber + 6.5 <<
   endl;
}
Salin selepas log masuk

Output

The given number is: 3.14159
6.5 more than the given number is: 9.64159
Salin selepas log masuk

Adalah jelas daripada contoh ini bahawa nombor itu diambil daripada objek rentetan. Memandangkan ini adalah data titik terapung sebenar, kami boleh menambah 6.5 kepada dirinya sendiri dalam tatatanda titik terapung dan memaparkan hasilnya.

Menggunakan sscanf() dalam C++

Pendekatan setanding (yang juga berfungsi dalam C) ialah menggunakan fungsi sscanf(). Fungsi ini menerima tatasusunan aksara sebagai input dan rentetan format, sama seperti fungsi scanf() standard. Kini ia membaca nilai yang diminta daripada rentetan dan menambahkannya pada pembolehubah yang ditunjuk oleh alamat pembolehubah. Sila lihat sintaks fungsi sscanf().

Tatabahasa

scanf ( <a string input>, <format string>, address(s) of variable );
Salin selepas log masuk

Algoritma

Mari kita lihat algoritma untuk memahami cara ia berfungsi secara keseluruhan.

  • Ambil rentetan x sebagai input dalam format tatasusunan aksara seperti C
  • Gunakan fungsi sscanf() dengan parameter x, rentetan format dan alamat berubah
  • Nilai pembolehubah akan disimpan terus daripada fungsi sscanf().

Contoh

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   sscanf( myString.c_str(), "%f", &x );
   return x;
}

int main()
{
   string aNumber = "6.8";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "2.5 more than the given number is: " << convNumber + 2.5 <<
   endl;
}
Salin selepas log masuk

Output

The given number is: 6.8
2.5 more than the given number is: 9.3
Salin selepas log masuk
Salin selepas log masuk

Aplikasi berfungsi sama seperti sebelum ini, tetapi terdapat beberapa perkara yang perlu kita perhatikan. Kaedah sscanf() tidak menyokong objek rentetan seperti C++. Ia memerlukan tatasusunan aksara seperti C. Untuk mencapai matlamat ini, kami menggunakan kaedah c_str() untuk menukar hujah rentetan yang disediakan kepada tatasusunan aksara seperti C.

Menggunakan stof() dalam C++

Menggunakan kaedah stof() daripada fail pengepala "Strings" ialah satu lagi cara yang cepat dan mudah untuk menukar rentetan kepada integer. Fungsi ini menukar objek rentetan kepada nombor titik terapung yang sepadan selepas menerimanya sebagai input.

Tatabahasa

#include <string>
stof ( <integer in string format> );
Salin selepas log masuk

Algoritma

  • Ambil objek rentetan x sebagai input
  • xFloat = stoi(x)
  • Mengembalikan xFloat sebagai pembolehubah apungan daripada rentetan x yang diberikan.

Contoh

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   x = stof( myString );
   return x;
}

int main()
{
   string aNumber = "6.8";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "2.5 more than the given number is: " << convNumber + 2.5 <<
   endl;
}
Salin selepas log masuk

Output

The given number is: 6.8
2.5 more than the given number is: 9.3
Salin selepas log masuk
Salin selepas log masuk

Menggunakan atof() dalam C++

Walaupun atof() juga terdapat dalam C, ia bersamaan dengan stof. Rentetan boleh diserahkan menggunakan format tatasusunan aksara. Anda boleh mendapatkannya dengan mengimport perpustakaan cstdlib. Jika tidak, tidak ada perbezaan yang nyata. Mari kita semak sintaks.

Tatabahasa

#include <cstdlib>
atof ( <floating number in character array format> );
Salin selepas log masuk

Algoritma

  • Ambil objek rentetan x sebagai input, dalam format tatasusunan aksara bahasa C.
  • xFloat = atoi(x)
  • Mengembalikan xFloat sebagai pembolehubah titik terapung daripada rentetan x yang diberikan.

Contoh

#include <iostream>
#include <sstream>

using namespace std;
float solve( string myString) {
   float x;
   x = atof( myString.c_str() );
   return x;
}

int main()
{
   string aNumber = "8.9";
   float convNumber = solve( aNumber );
   cout << "The given number is: " << convNumber << endl;
   cout << "6.5 more than the given number is: " << convNumber + 6.5 <<
   endl;
}
Salin selepas log masuk

Output

The given number is: 8.9
6.5 more than the given number is: 15.4
Salin selepas log masuk

Kesimpulan

Terdapat pelbagai cara untuk menukar rentetan kepada terapung. Dua kaedah pertama (menggunakan stringstream dan sscanf()) adalah cara umum untuk menukar rentetan kepada mana-mana jenis data tanpa mengubah apa-apa lagi yang berubah ialah jenis pembolehubah akhir. stof() dan atof() Fungsi ini hanya digunakan untuk menukar rentetan kepada nombor titik terapung. Fungsi lain yang menukar kepada jenis data yang berbeza adalah setara. Oleh kerana ia adalah fungsi berasaskan C, sscanf dan atof() tidak menerima objek rentetan. Sebelum menggunakannya, kita perlu menukar rentetan kepada tatasusunan aksara menggunakan fungsi c_str().

Atas ialah kandungan terperinci Terjemah yang berikut ke dalam bahasa Cina: Program C++ untuk menukar rentetan kepada terapung. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Isu terkini
nginx - Ngnix http转https
daripada 1970-01-01 08:00:00
0
0
0
Buat pengawal log masuk dan halaman
daripada 1970-01-01 08:00:00
0
0
0
Ralat semasa mengimport ciri
daripada 1970-01-01 08:00:00
0
0
0
Terdapat ralat dalam penerangan Pelajaran 8
daripada 1970-01-01 08:00:00
0
0
0
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan