鱼C论坛

 找回密码
 立即注册
查看: 1916|回复: 14

[技术交流] [C++板块提升计划]size省略字符程序(回复可见)

[复制链接]
发表于 2022-9-25 19:59:48 | 显示全部楼层 |阅读模式
本帖最后由 高山 于 2022-9-25 20:27 编辑

程序描述:
你在本程序输入一个英文字符(符号也算)(最长长度99),只要字符长度>10,那么程序就会输出头和尾,中间写出省略的字符数

演示视频在评论区
效果展示:

演示图片.png
代码演示:
游客,如果您要查看本帖隐藏内容请回复

彩色版RTF代码:
游客,如果您要查看本帖隐藏内容请回复

成品及源码附件:
游客,如果您要查看本帖隐藏内容请回复



单选投票, 共有 3 人参与投票 查看投票参与人

投票已经结束

100.00% (3)
0.00% (0)
您所在的用户组没有投票权限

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-25 20:14:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:08:48 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:23:44 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:27:41 | 显示全部楼层
  1. #include <cstdio>
  2. #include <cstring>
  3. using namespace std;

  4. void solve() {
  5.         char str[101];
  6.         scanf("%s", str);
  7.         int len = strlen(str);
  8.         if (len <= 10)
  9.                 printf("%s\n", str);
  10.         else
  11.                 printf("%c ---Omit %d characters--- %c", str[0], len - 2, str[len - 1]);
  12. }

  13. int main() {
  14.         int q;
  15.         scanf("%d", &q);
  16.         while (q--)
  17.                 solve();
  18. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-25 20:28:46 | 显示全部楼层

你敲代码的速度有点快……
比我想象的小学生速度快
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:30:20 | 显示全部楼层
你在本程序输入一个英文字符串(符号也算)(最长长度99),只要字符串长度>10,那么程序就会输出头和尾的字符,中间写出省略的字符数

希望细心一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:31:15 | 显示全部楼层
高山 发表于 2022-9-25 20:28
你敲代码的速度有点快……
比我想象的小学生速度快


4分钟敲代码....[凡尔赛警告]

我觉得挺慢的...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-25 20:57:00 | 显示全部楼层
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <regex>

  5. using std::cin, std::cout, std::endl;
  6. using std::string, std::stringstream;
  7. using std::regex, std::regex_replace;

  8. const string replace(const string &s) {
  9.     if(s.size() <= 10) return s;
  10.     regex pattern(R"((.).*(.)$)");
  11.     stringstream ss;
  12.     ss << "$1 ...中间有" << s.size() - 2 << "个字符... $2";
  13.     return regex_replace(s, pattern, ss.str());
  14. }

  15. int main() {
  16.     string str;
  17.     cin >> str;
  18.     cout << replace(str) << endl;
  19.     return 0;
  20. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-26 00:03:04 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-27 19:46:31 | 显示全部楼层

STL人....看不懂....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-27 20:18:17 | 显示全部楼层

这不是stl
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-27 21:11:12 | 显示全部楼层

就是用正则表达式进行字符串替换
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-27 21:20:26 | 显示全部楼层
人造人 发表于 2022-9-27 21:11
就是用正则表达式进行字符串替换

学一学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-1 12:01:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 15:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表