编程面试题:字符串(四)
来源:互联网 发布:传奇dbc数据说明 编辑:程序博客网 时间:2024/06/06 06:46
然后输出输入字符串中含有该字符的个数。不区分大小写。
我的代码如下:
#include<iostream>
#include<string>
using namespace std;
int main() {
char str[1000];
char sub_str,sub_str2;
int cnt=0;
cin.getline(str, 1000);
cin >> sub_str;
if (sub_str >= 'a'&&sub_str <= 'z')
sub_str2 = sub_str - 32;
if (sub_str >= 'A'&&sub_str <= 'Z')
sub_str2 = sub_str + 32;
for (int i = 0; i < 1000; i++) {
if (str[i] == sub_str || str[i] == sub_str2)
cnt++;
}
cout << cnt;
return 0;
}
总结:
我的代码不是最优的,它有一个漏洞就是只能接收长度在1000以内的字符串,超过了就不行了。
因此我在牛客网上找到了一个很好解决了我的问题的代码,如下:
string input;
char target;
getline(cin, input);
cin >> target;
char target1;
if (target >= 65 && target <= 96)
target1 = target + 32;
if (target >= 97 && target <= 129)
target1 = target - 32;
int count = 0;
for (int i = 0; i<input.length(); ++i) {
if (input[i] == target || input[i] == target1)
count++;
}
cout << count << endl;
我的收获:
1.getline(cin,input)的新用法,之前一直用cin.getline(str,1000)这种形式
2.字符串可以直接转换成字符数组的形式,为此我写了一个测试代码,可以直接运行成功
string input;
//char target;
getline(cin, input);
cout << input[3] << endl;
3,。字符串是不能直接转换成大小写的,要char型才可以。
- 编程面试题:字符串(四)
- 面试题(四)
- 面试题(四)Java
- 常见面试题(四)
- 微软面试题(四)
- 经典面试题(四)
- 面试题整理(四)
- Android面试题(四)
- iOS面试题(四)
- iOS面试题(四)
- iOS 面试题 (四)
- 面试题杂货铺(四)
- java面试题(四)
- Android面试题(四)
- Android面试题(四)
- jvm面试题(四)
- C++面试题(四)
- 前端面试题(四)
- Picasso加载本地
- bootstrap-table 行内编辑简单实现
- 网易编程题五,数字翻转(计算)
- oracle通过序列和触发器实现自增主键
- QLabel
- 编程面试题:字符串(四)
- 机器学习实战_KNN
- 4.vue.js实例:列表输出
- PSFTP上传文件到服务器
- sql支持emoji表情符
- REST架构与SOAP WebService的比较
- 必读书籍
- Nginx--Linux(Centos)之安装Nginx及注意事项
- php八大设计模式之桥接模式