Rumah > Artikel > pembangunan bahagian belakang > Bilangan butang yang ditekan pada telefon butang tekan
String dalam C++ ialah struktur storan terbina dalam yang digunakan untuk mengandungi nombor, aksara dan juga simbol khas. Setiap rentetan dikaitkan dengan saiz yang pasti, ditentukan oleh atribut panjangnya. Secara lalai, kedudukan rentetan bermula pada 0. Aksara dalam rentetan boleh melakukan pelbagai jenis operasi -
Aksara baharu boleh ditambah pada hujung rentetan.
Aksara boleh ditambah pada rentetan beberapa kali.
Dalam artikel ini, kami akan membangunkan kod yang mengambil rentetan sebagai input dan mengira bilangan kali kekunci mesti ditekan untuk menaip rentetan itu pada skrin mudah alih papan kekunci. Tatasusunan input juga disediakan yang menunjukkan bilangan ketukan kekunci untuk mana-mana aksara tertentu. Mari lihat contoh berikut untuk memahami topik ini dengan lebih baik -
Contoh 1 - str - "abc"
Output - 6
Sebagai contoh, dalam rentetan contoh di bawah, jumlah bilangan ketukan kekunci adalah bersamaan dengan 1+2+3 = 6.
Dalam artikel ini, kami akan mencipta penyelesaian yang mengekstrak satu aksara daripada rentetan pada satu masa dan kemudian mengekstrak ketukan kekunci yang sepadan daripada tatasusunan input. Setiap kali kiraan ditambah kepada pembolehubah jumlah.
str.length()
Kaedah length() dalam C++ digunakan untuk mengira bilangan aksara alfanumerik yang terkandung dalam rentetan. Ia boleh digunakan untuk mengira aksara abjad angka, ruang dan nombor.
Terima rentetan input str
Kaunter yang menyimpan bilangan kali setiap aksara perlu ditekan untuk menjana rentetan.
Gunakan kaedah length() untuk mengira panjang rentetan dan simpan dalam pembolehubah len
Ekstrak watak pada kedudukan ke-i setiap kali, ch.
Kaunter ditambah dengan bilangan jawatan yang disebut dalam arr.
Lakukan gelung menurun yang dimulakan dengan nilai pembilang untuk menambahkan aksara yang diekstrak pada rentetan output.
Nilai kiraan akan berkurangan setiap kali.
Selepas melakukan bilangan lelaran yang diperlukan ke atas aksara, penuding akan beralih ke aksara seterusnya.
Coretan kod C++ berikut digunakan untuk mencipta rentetan yang disulitkan berdasarkan rentetan contoh input yang diberikan -
//including the required libraries #include <bits/stdc++.h> using namespace std; //storing thr reqd number of times a character should be pressed const int arr[] = { 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4 }; //return the total number of times the button should be pressed int numkeypresses(string str) { //initialising with count int count = 0; //count the length of string int len = str.length(); // total key presses for (int i = 0; i < len; i++) { char ch = str[i]; count+= arr[ch - 'a']; } cout << "Total number of key presses "<< count; } // Driver code int main() { //input string string str = "tutorials"; cout <<"Input String : "<< str << "\n" ; //calling the function to count the number of times key is pressed numkeypresses(str); return 0; }
Input String − tutorials Total number of key presses 21
Watak dan integer dimanipulasi menggunakan kod ASCII. Penukaran mereka kepada dan daripada satu sama lain boleh disimulasikan dengan mudah, sebagai contoh, integer boleh ditukar kepada setara aksara yang sepadan dengan menolak aksara "a". Ini menghasilkan penukaran kod ASCIInya kepada dan dari satu sama lain, yang boleh digunakan untuk operasi manipulasi berangka pada rentetan.
Atas ialah kandungan terperinci Bilangan butang yang ditekan pada telefon butang tekan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!