鱼C论坛

 找回密码
 立即注册
查看: 2532|回复: 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 | 显示全部楼层
#include <cstdio>
#include <cstring>
using namespace std;

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

int main() {
        int q;
        scanf("%d", &q);
        while (q--)
                solve();
}
想知道小甲鱼最近在做啥?请访问 -> 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 | 显示全部楼层
#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;
}
想知道小甲鱼最近在做啥?请访问 -> 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-11-17 00:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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