用c++做以下题目:题目名称:字符密码 【问题描述】 小明和小王是一对好伙伴,也有共同的爱好,都喜欢看特工电影,特别崇拜特工之间的密码交流,于是两位小朋友也自己想了一个暗号密码,输入一串无规则字符串,字符串看似杂乱无章,实际上却隐藏着两位小朋友彼此的交流信息:当遇到数字字符的时候,数字的大小就表示从当前位置往后多少位的字符是有效信息,把所有的有效信息连在一起就是字符串中隐藏的密码(0表示空字符)。 【样例输入】 deqw2xhde3njiak0dea4deqm5deaea6qwplan 【样例输出】 hi man
时间: 2024-02-13 10:01:51 浏览: 52
以下是题目的C++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str, password = "";
getline(cin, str); // 读取一行字符串
for (int i = 0; i < str.length(); i++) {
if (isdigit(str[i])) { // 如果当前字符是数字
int len = str[i] - '0'; // 获取数字的大小
if (len == 0) continue; // 如果是0,跳过本次循环
password += str.substr(i+1, len); // 获取有效信息并拼接到密码中
i += len; // 更新i的值,跳过已经获取的有效信息
}
}
cout << password << endl; // 输出密码
return 0;
}
```
在上面的代码中,我们使用了一个for循环遍历输入的字符串,如果发现当前字符是数字,则获取数字的大小,并通过substr函数获取从当前位置往后多少位的有效信息,将其拼接到密码中,并更新i的值,跳过已经获取的有效信息。最后,输出密码即可。
相关问题
使用c++完成以下题目:用指针访问数组,其功能是:假定输入的字符串s中只包含字母和*,将所有的*移动到字符串的尾部
下面是用C语言实现题目要求的代码:
```c
#include <stdio.h>
#include <string.h>
void move_asterisks(char* s) {
int len = strlen(s);
int i, j = len - 1;
for (i = len - 1; i >= 0; i--) {
if (s[i] != '*') {
s[j--] = s[i];
}
}
while (j >= 0) {
s[j--] = '*';
}
}
int main() {
char s[] = "a*b**cd**e*f";
move_asterisks(s);
printf("%s\n", s);
return 0;
}
```
该代码定义了一个 `move_asterisks` 函数,将输入的字符串中所有的 `*` 移到字符串的末尾,其余字符不变。在 `main` 函数中,将字符串 "a*b**cd**e*f" 传递给 `move_asterisks` 函数,并将处理后的结果打印出来。
C++题目:若字符串a="ahaworld",其子串的个数是多少?
字符串a="ahaworld"的子串个数为28个。
子串是指一个字符串中任意连续的一段字符组成的字符串,例如"a"、"h"、"w"、"d"等都是子串,"ah"、"haw"、"world"也是子串。
算法思路:
依次枚举子串开始位置和结束位置,将所有的子串放入一个set中去重,最后输出set的大小即可。
C++代码实现如下:
```c++
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main() {
string s = "ahaworld";
set<string> sub_str;
for (int i = 0; i < s.length(); i++) {
for (int j = i + 1; j <= s.length(); j++) {
sub_str.insert(s.substr(i, j - i));
}
}
cout << "字符串\"" << s << "\"的子串个数是:" << sub_str.size() << endl;
return 0;
}
```
输出结果为:
```
字符串"ahaworld"的子串个数是:28
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)