C++ 按键手机中按下的按钮数量
介绍
C++中的字符串是一种内置的存储结构,用于包含数字、字符甚至特殊符号。每个字符串都与一个确定的大小相关联,由其长度属性指定。默认情况下,字符串位置从0开始。字符串中的字符可以经过各种类型的操作-
- 可以在字符串末尾附加新字符。
-
可以多次将一个字符附加到字符串中。
在本文中,我们将开发一段代码,接受一个字符串作为输入,并计算按动按钮的次数,以便将该字符串输入到按键手机屏幕上。还提供了一个输入数组,用于说明任何特定字符的按键次数。让我们看以下示例来更好地理解这个主题-
示例
示例1- str-“abc”
输出-6
例如, 在下面的示例字符串中, 总的按键次数等于1+2+3 = 6。
在本文中, 我们将创建一个解决方案, 逐个提取字符串的字符, 然后从输入数组中提取相应的按键次数。每次将计数添加到总和变量中。
语法
str.length()
length()
length() 方法在C++中用于计算字符串中包含的字母数字字符的数量。它可以用于计算字母数字字符的数量,包括空格和数字。
步骤
- 接受一个输入字符串str
-
维护一个计数器count来存储生成字符串所需按下每个字符的次数。
-
使用length()方法计算字符串的长度,并存储在变量len中。
-
提取第i个位置的字符ch。
-
将计数器按照arr中指定的次数递增。
-
用递减循环进行追加操作,初始化为计数器的值,将提取的字符追加到输出字符串中。
-
每次计数值减1。
-
完成字符的所需迭代次数后,将指针移到下一个字符。
示例
下面的C++代码片段用于从给定的输入样例字符串创建加密字符串 –
//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
结论
字符和整数使用ASCII码进行操作。它们之间的转换可以很容易地模拟,例如,整数可以通过减去字符“a”来转换为相应的字符等价物。这会导致其ASCII码的转换,可以用于对字符串进行数值操作。