【C/C++题目】字符串处理——记录每个字符出现的次数;比较字符串是否相等;字符串中相同字符的最大间距;
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【C/C++题目】字符串处理——记录每个字符出现的次数;比较字符串是否相等;字符串中相同字符的最大间距;,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2498字,纯文字阅读大概需要4分钟。
内容图文
文章目录
一、记录每个字符出现的次数
输入一串字符, 打印其中每个字符出现的次数(如果没有则不显示)
1,实现代码
#include <iostream>
#include <string>
using namespace std;
///储存次数
int arr[256];
///字符串
string str;
int main()
{
///输入
cout << "样例输入:";
getline(cin, str);
int len = str.length();
///记录次数
//rep(i, 0, len - 1) arr[str[i]] ++;
for (int i = 0; i <= len - 1; i++)
arr[str[i]] ++; //使用ASCII码作为数组下标
///输出
cout << endl << "结果:" << endl;
for (char i = 0; i < 127; i++)
if (arr[i] != 0)
cout << "'" << i << "': " << arr[i] << "\t";
return 0;
}
2,运行效果
二、比较字符串是否相等
输入两串字符串, 无视空格和大小写, 判断其是否相等
1,实现代码
#include <iostream>
#include<string>
using namespace std;
void transform(string* str, int len); //大小写转换,及删除空格
int main()
{
string str1, str2;
int len1, len2;
cout << "请输入测试字符串:";
getline(cin, str1);
cout << "请输入比较字符串:";
getline(cin, str2);
len1 = str1.length();
len2 = str2.length();
transform(&str1, len1);
transform(&str2, len2);
len1 = str1.length();
len2 = str2.length();
cout << endl << "比较结果:";
if (len1 == len2)
{
for (int i = 0; i < len1; i++)
{
if (str1[i]!=str2[i])
{
cout << "两组字符串不相等" << endl;
}
}
cout << "两组字符串相等" << endl;
}
else
{
cout << "两组字符串不相等" << endl;
}
return 0;
}
void transform(string* str, int len)
{
for (auto it = str->begin(); it != str->end(); it++)
{
if ((*it) == ' ') //删除空格
{
str->erase(it);
}
if ((*it) >= 'A' && (*it) <= 'Z') //所有大写转小写
{
(*it) = (*it) + 32;
}
}
}
2,运行效果
三、找字符串中相同字符的最大间距
输入一个字符串
查找出相同字符中 间距最大的那个
并打印出字符和间距
(注: 以遇到的第一个相同字符为准)
1,实现代码
#include <iostream>
#include <string>
using namespace std;
string str;
int find(int i) {
int index = i + 1;//功能类似于游标
//循环找同字符
while (str[i] != str[index]) {
//没找到的情况
if (index == str.length()) {
return 0;
}
index++;
}
//从 i 下标开始到下一个同字母的间隔数
return index - i - 1;
}
int main() {
//记录最大间隔
int max = 0;
//暂时的最大间隔
int temp_max = 0;
cout << "输入测试字符串:";
getline(cin, str);
//记录最大间隔所对应的字符
char char_max = 0;
for (int i = 0; i < str.length(); i++) {
temp_max = find(i); //获取暂时的最大字符间隔
//比较最大
if (temp_max >= max) {
max = temp_max;
char_max = str[i];
}
}
cout << endl << "计算结果:";
cout << char_max << ":" << max << endl;
return 0;
}
2,运行效果
如有不足之处,还望指正 1。
如果对您有帮助可以点赞、收藏、关注,将会是我最大的动力 ??
内容总结
以上是互联网集市为您收集整理的【C/C++题目】字符串处理——记录每个字符出现的次数;比较字符串是否相等;字符串中相同字符的最大间距;全部内容,希望文章能够帮你解决【C/C++题目】字符串处理——记录每个字符出现的次数;比较字符串是否相等;字符串中相同字符的最大间距;所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。