Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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

WBOY
WBOYke hadapan
2023-09-13 11:57:021212semak imbas

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> );

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

Tatabahasa

<data type> variable;
streamObject >> variable;

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;
}

Output

The given number is: 3.14159
6.5 more than the given number is: 9.64159

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 );

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;
}

Output

The given number is: 6.8
2.5 more than the given number is: 9.3

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> );

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;
}

Output

The given number is: 6.8
2.5 more than the given number is: 9.3

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> );

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;
}

Output

The given number is: 8.9
6.5 more than the given number is: 15.4

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!

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