[C++板块提升计划]size省略字符程序(回复可见)
本帖最后由 高山 于 2022-9-25 20:27 编辑程序描述:
你在本程序输入一个英文字符(符号也算)(最长长度99),只要字符长度>10,那么程序就会输出头和尾,中间写出省略的字符数
演示视频在评论区
效果展示:
代码演示:
**** Hidden Message *****
彩色版RTF代码:
**** Hidden Message *****
成品及源码附件:
**** Hidden Message *****
演示视频请戳我
学习{:5_108:} 看看 #include <cstdio>
#include <cstring>
using namespace std;
void solve() {
char str;
scanf("%s", str);
int len = strlen(str);
if (len <= 10)
printf("%s\n", str);
else
printf("%c ---Omit %d characters--- %c", str, len - 2, str);
}
int main() {
int q;
scanf("%d", &q);
while (q--)
solve();
} zhangjinxuan 发表于 2022-9-25 20:27
你敲代码的速度有点快……
比我想象的小学生速度快 你在本程序输入一个英文字符串(符号也算)(最长长度99),只要字符串长度>10,那么程序就会输出头和尾的字符,中间写出省略的字符数
希望细心一点 高山 发表于 2022-9-25 20:28
你敲代码的速度有点快……
比我想象的小学生速度快
4分钟敲代码....[凡尔赛警告]
我觉得挺慢的...{:5_109:} #include <iostream>
#include <string>
#include <sstream>
#include <regex>
using std::cin, std::cout, std::endl;
using std::string, std::stringstream;
using std::regex, std::regex_replace;
const string replace(const string &s) {
if(s.size() <= 10) return s;
regex pattern(R"((.).*(.)$)");
stringstream ss;
ss << "$1 ...中间有" << s.size() - 2 << "个字符... $2";
return regex_replace(s, pattern, ss.str());
}
int main() {
string str;
cin >> str;
cout << replace(str) << endl;
return 0;
} {:5_108:} 人造人 发表于 2022-9-25 20:57
STL人....看不懂.... zhangjinxuan 发表于 2022-9-27 19:46
STL人....看不懂....
这不是stl
zhangjinxuan 发表于 2022-9-27 19:46
STL人....看不懂....
就是用正则表达式进行字符串替换
人造人 发表于 2022-9-27 21:11
就是用正则表达式进行字符串替换
学一学 人造人 发表于 2022-9-25 20:57
学习!
页:
[1]