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=" }
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():])
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)); }
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!