Bagaimana untuk Mengesahkan Awalan dengan Cekap dan Menukar Subrentetan kepada Integer dalam C?

Susan Sarandon
Lepaskan: 2024-10-31 10:05:02
asal
796 orang telah melayarinya

How to Efficiently Verify Prefixes and Convert Substrings to Integers in C  ?

Mengesahkan Awalan dan Menukar Subrentetan dengan Cekap kepada Integer dalam C

Keperluan untuk menyemak sama ada rentetan bermula dengan awalan tertentu dan menukar subrentetan kepada integer adalah tugas biasa dalam pengaturcaraan. Dalam Python, ini boleh dicapai dengan mudah menggunakan fungsi startswith() dan int(). Walau bagaimanapun, melaksanakan kefungsian yang serupa dalam C memerlukan pendekatan yang berbeza.

Untuk menyemak sama ada rentetan C std::string bermula dengan rentetan tertentu, anda boleh menggunakan fungsi rfind() dengan parameter kedudukan pos ditetapkan kepada sifar. Ini mengehadkan carian untuk hanya sepadan dengan awalan pada permulaan rentetan atau lebih awal. Contohnya, untuk menyemak sama ada argv[1] bermula dengan "--foo=":

if (argv[1].rfind("--foo=", 0) == 0) {
  // argv[1] starts with "--foo="
}
Salin selepas log masuk

Untuk menukar subrentetan kepada integer, anda boleh menggunakan fungsi stoi(). Walau bagaimanapun, memandangkan rfind() mengembalikan kedudukan, anda perlu mengekstrak subrentetan terlebih dahulu. Berikut ialah pseudokod Python yang dikemas kini:

if argv[1].startswith('--foo='):
    foo_value = int(argv[1]['--foo='.len():])
Salin selepas log masuk

Dalam C , ini akan diterjemahkan kepada:

size_t pos = argv[1].rfind("--foo=", 0);
if (pos != std::string::npos) {
  foo_value = std::stoi(argv[1].substr(pos + 6));
}
Salin selepas log masuk

Pendekatan ini cekap dan mudah, tidak memerlukan perpustakaan luaran atau kerumitan tambahan. Ia menyediakan penyelesaian yang ringkas dan berkesan untuk kedua-dua semakan awalan dan penukaran subrentetan dalam C .

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Awalan dengan Cekap dan Menukar Subrentetan kepada Integer 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