一、記錄每個字符出現的次數
輸入一串字符, 打印其中每個字符出現的次數(如果沒有則不顯示)
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。
如果對您有幫助可以點贊、收藏、關注,將會是我最大的動力 ↩︎