Home > Backend Development > C++ > The number of buttons pressed on a push-button phone

The number of buttons pressed on a push-button phone

王林
Release: 2023-09-07 09:33:15
forward
952 people have browsed it

The number of buttons pressed on a push-button phone

Introduction

String in C is a built-in storage structure used to contain numbers, characters and even special symbols. Each string is associated with a definite size, specified by its length attribute. By default, string positions start at 0. Characters in strings can perform various types of operations -

  • New characters can be appended to the end of the string.

  • A character can be appended to a string multiple times.

In this article we will develop a code that takes a string as input and counts the number of times a key must be pressed in order to type that string onto the keyboard mobile screen. An input array is also provided indicating the number of keystrokes for any particular character. Let us see the following example to understand this topic better -

Example

Example 1 - str - "abc"

Output - 6

For example, in the following example string, the total number of keys is equivalent to 1 2 3 = 6.

In this article, we will create a solution that extracts one character from a string at a time and then extracts its corresponding keystrokes from the input array. Each time the count is added to the sum variable.

grammar

str.length()
Copy after login

length()

The length() method in C is used to count the number of alphanumeric characters contained in a string. It can be used to count alphanumeric characters, spaces, and numbers.

algorithm

  • Accept input string str

  • A counter that stores the number of times each character should be pressed to generate the string.

  • Use the length() method to calculate the length of the string and store it in the len variable

  • Extract the character at the i-th position each time, ch.

  • The counter is incremented by the number of positions mentioned in arr.

  • Execute a decreasing loop initialized with the counter value to append the extracted characters to the output string.

  • The count value will be decremented each time.

  • After performing the required number of iterations over the characters, the pointer moves to the next character.

Example

The following C code snippet is used to create an encrypted string based on the given input example string -

//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;
}
Copy after login

Output

Input String − tutorials
Total number of key presses 21
Copy after login

in conclusion

Characters and integers are manipulated using ASCII codes. Their conversion to and from each other can be easily simulated, for example, an integer can be converted to its corresponding character equivalent by subtracting the character "a". This results in the conversion of its ASCII codes to and from each other, which can be used for numeric manipulation operations on strings.

The above is the detailed content of The number of buttons pressed on a push-button phone. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template