Bagaimana untuk Menambah Integer dengan betul pada String dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-11 17:08:02
asal
862 orang telah melayarinya

How to Correctly Append an Integer to a String in C  ?

Menambah Integer pada Rentetan dalam C

Kaedah std::string::append() dalam C digunakan untuk menambah urutan aksara atau rentetan kepada rentetan sedia ada. Walau bagaimanapun, adalah penting untuk memahami kelakuannya untuk mengelakkan ralat.

Pertimbangkan coretan kod berikut:

std::string query;
int ClientID = 666;
query = "select logged from login where id = ";
query.append((char *)ClientID);
Salin selepas log masuk

Kod ini cuba menambahkan integer ClientID pada rentetan pertanyaan. Walau bagaimanapun, ia menimbulkan Kegagalan Penegasan Nyahpepijat. Sebabnya ialah std::string::append() menjangkakan argumen char* yang menunjuk kepada rentetan yang ditamatkan nol.

Penyelesaian:

Untuk menambah dengan betul integer kepada rentetan, beberapa pendekatan tersedia:

  • Menggunakan std::ostringstream:
#include <sstream>

std::ostringstream s;
s << "select logged from login where id = " << ClientID;
std::string query(s.str());
Salin selepas log masuk
  • Menggunakan std::to_string (C 11 dan kemudian):
std::string query("select logged from login where id = " +
                  std::to_string(ClientID));
Salin selepas log masuk
  • Menggunakan boost::lexical_cast:
#include <boost/lexical_cast.hpp>

std::string query("select logged from login where id = " +
                  boost::lexical_cast<std::string>(ClientID));
Salin selepas log masuk

Kaedah ini memastikan bahawa integer ditukar dengan betul kepada rentetan sebelum menambahkannya pada rentetan pertanyaan, mengelakkan Kegagalan Penegasan Nyahpepijat.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Integer dengan betul pada String dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan