PATB1033 旧键盘打字 (20 分)
Posted tsruixi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PATB1033 旧键盘打字 (20 分)相关的知识,希望对你有一定的参考价值。
一、技术总结
- 使用字符数组出现段错误即char str[];改成string str;后问题解决。以后尽量使用C++中的string
- 使用cin>>,出现答案错误,原因可能是在输入是有空格输入,导致答案错误,改成getline(cin,str);问题解决。
详情参考:https://www.cnblogs.com/tsruixi/p/11781506.html
二、C++参考代码
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
const int maxn = 10010;
bool hashTable[256];
int main(){
memset(hashTable,true,sizeof(hashTable));
string str;
getline(cin,str);
int len = str.length();
for(int i = 0; i < len; i++){
if(str[i] >= 'A' && str[i] <= 'Z'){
str[i] = str[i] - 'A' + 'a';
}
hashTable[str[i]] = false;
}
cin >> str;
len = str.length();
int flag = 0;
for(int i = 0; i < len; i++){
if(str[i] >= 'A' && str[i] <= 'Z'){
int low = str[i] - 'A' + 'a';
if(hashTable[low] == true && hashTable['+'] == true){
cout << str[i];
flag = 1;
}
}else if(hashTable[str[i]] == true){
cout << str[i];
flag = 1;
}
}
if(flag == 0) cout << endl;
return 0;
}
以上是关于PATB1033 旧键盘打字 (20 分)的主要内容,如果未能解决你的问题,请参考以下文章