华为笔试——C++转换字符串问题
程序员文章站
2022-08-11 16:26:13
题目:转换字符串 题目介绍: 将输入字符串中下标为偶数的字符连成一个新的字符串输出,需要注意两点: 1. 如果输入字符串的长度超过20,则转换失败,返回“ERROR!”字符串; 2. 输入字符串只能由0-9数字,小写a-z和大写A-Z组成,如果包含其他字符,则转换失败,返回“ERROR!”字符串。 ......
题目:转换字符串
题目介绍:
将输入字符串中下标为偶数的字符连成一个新的字符串输出,需要注意两点:
1. 如果输入字符串的长度超过20,则转换失败,返回“error!”字符串;
2. 输入字符串只能由0-9数字,小写a-z和大写a-z组成,如果包含其他字符,则转换失败,返回“error!”字符串。
例:
输入:
abcd1234
输出:
ac13
分析:这道题相对来说比较简单,用char字符串类型实现即可。
代码:
1 #include <iostream> 2 #include <string> 3 #include <conio.h> 4 using namespace std; 5 int main() 6 { 7 char c; 8 int count = 0; 9 int size = 20; 10 int i; 11 char *password = new char[size]; 12 string str; 13 while ((c = _getch()) != '\r') { 14 if (count >= size - 1) { 15 cout << "error!" << endl; 16 continue; 17 } 18 if ((c >= 'a' && c <= 'z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9')) { // 密码只可包含数字和字母 19 cout << c; 20 password[count] = c; 21 count++; 22 } 23 } 24 password[count] = '\0'; 25 cout << endl; 26 for (i = 0; i < count; i++) 27 { 28 if (i % 2 == 0) 29 { 30 cout << password[i]; 31 } 32 } 33 return 0; 34 }
结果如下图:
上一篇: 课时71.后代选择器(掌握)