鱼C论坛

 找回密码
 立即注册
查看: 1950|回复: 35

下面的用Mfc怎么实现

[复制链接]
发表于 2025-1-22 11:42:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

〖JZ〗(日语)江西11月高二期中
第一部分 听力(共两节,满分30分)
做题时,请先将答案标在试卷上。录音内容结束后,你将有两分钟时间将试卷上的答案转填到答题卡上。
第一节(共5小题;每小题1.5分,满分7.5分)
听下面5段录音,每段录音后有1道小题,从题中所给的A、B、C三个选项中选出最佳选项。听完每段录音后,你将有10秒钟的时间回答该小题和阅读下一小题。每段录音只播放一遍。
〖HT《MS Mincho》〗1.女の人は日曜日映画を見に行きますか。
A.行く B.行かないC.よく分からない
2.男の人の趣味は何ですか。
A.テニス B.水泳C.野球
3.男の人はどこにいますか。
A.男の人の家 B.女の人の家C.山下さんの家
4.男の人はいくら払いましたか。
A.1600円 B.1800円 C.2000円
5.女の人はどうして秋が好きですか。
A.涼しいから B.果物が美味しいからC.紅葉がきれいだから〖HT〗
第二节(共15小题;每小题1.5分,满分22.5分)
听下面5段录音,每段录音后有几个小题,从题中所给的A、B、C三个选项中选出最佳选项。听每段录音前,你将有时间阅读各个小题,每小题5秒钟;听完后,各小题将给出5秒钟的作答时间。每段录音播放两遍。
听下面的录音,回答第6至8题。
〖HT《MS Mincho》〗6.日本の学校はいつから始まりますか。
A.4月B.8月C.9月
7.日本では、夏休みは何日間ぐらいですか。
A.2か月B.40日間 C.10日間
8.日本では、春休みは何日間ぐらいですか。
A.2か月B.40日間 C.10日間〖HT〗
听下面的录音,回答第9至11题。
〖HT《MS Mincho》〗9.今は何月ですか。
A.3月B.4月C.7月
10.女の人は何のラーメンが一番好きですか。
A.しょうゆラーメンB.みそラーメンC.しおラーメン
11.男の人はこれからまず何をしますか。
A.仕事をするB.店の予約をする C.ラーメン屋に行く 〖HT〗
听下面的录音,回答第12至14题。
〖HT《MS Mincho》〗12.二人はどんな関係ですか。
A.夫婦B.先生と学生C.医者と患者
13.二人はまず何をしますか。
A.服を買うB.靴を買うC.野菜と肉を買う
14.靴売り場は何階ですか。
A.1階B.4階 C.5階〖HT〗
听下面的录音,回答第15至17题。
〖HT《MS Mincho》〗15.男の人はどうして学校を休みましたか。
A.入院中だからB.風邪を引いたからC.大雨が降ったから
16.女の人は放課後どこへ行きますか。
A.男の人の家B.女の人の家C.病院
17.女の人はどんな人ですか。
A.男の人のクラスメートB.男の人の先生C.医者〖HT〗
听下面的录音,回答第18至20题。
〖HT《MS Mincho》〗18.今日は何月何日ですか。
A.9月4日B.9月8日C.9月9日
19.男の人は両親から何をもらいましたか。
A.本B.漫画 C.腕時計
20.男の人は何人家族ですか。
A.4人B.5人C.6人〖HT〗
〖HTH〗第二部分 阅读(共20小题;每小题2.5分,满分50分)〖HT〗
〖HTK〗阅读下列短文,从每题所给的A、B、C、D四个选项中选出最佳选项。〖HT〗
〖JZ〗(一)
〖HT《MS Mincho》〗日本人はお花見が大好きです。毎年、桜の花が咲く日を楽しみにしています。しかし、桜が咲く前に、もう一つ、とても楽しみにしていることがあります。それは梅の花を見ることです。
梅は 2月ごろに咲き始めます。まだ寒い季節です。私たちは、セーターやコートを着て、梅を見に出かけます。寒い時に梅を見ながら、もうすぐ(〖HT《MS Gothic》〗ア〖HT《MS Mincho》〗)が来ると感じます。梅は、春の訪れを待つ季節にぴったりの花だと言えるでしょう。私の家の庭にも、梅が植えてあります。毎年、きれいな花が咲きます。桜は植えていません。それには理由があります。梅は桜より手入れが簡単です。桜の場合、毛虫という面倒な虫も付いていますし、葉もたくさん散ります。薬をまいたり、葉を掃除したりするのが大変です。それで、我が家では桜ではなく、梅を植えたのです。
21.今文中に「それ」とあるが、指すものはどれか。
A.梅の花を見ること
B.日本人はお花見が大好きなこと
C.もう一つとても楽しみにしていること
D.桜の花が咲く日を楽しみにしていること
22.文中の( ア )に入れるのに最も適当なものはどれか。
A.春B.桜C.冬D.梅
23.文中に「桜は植えていません」とあるが、それはなぜか。
A.桜は梅より手入れが簡単だから
B.梅は桜より手に入るのが簡単だから
C.桜は薬をまいたり、葉を掃除したりするのが大変だから
D.梅は毛虫という面倒な虫も付いているし、葉もたくさん散るから
24.文中の「手入れ」はどういう意味か。
A.掃除B.育て C.開花 D.手に入れること
25.この文章の内容に合っているのはどれか。
A.梅は桜が咲いた後で咲く。
B.日本人は梅を見るのが大好きだ。
C.私の家の庭に梅と桜が植えてある。
D.梅は春の訪れを待つ季節にぴったりの花だ。〖HT〗


这一段文字中或者类似的文字在凡是〖HT《MS Mincho》〗和〖HT〗之间的字符串中的标点符号加上〖KG1*2〗用mfc代码怎么实现
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2025-1-22 13:48:50 | 显示全部楼层
while (std::regex_search(str.cbegin() + lastPos, str.cend(), matches, reg)) {
        size_t matchStart = matches.position(0) + lastPos;
        size_t matchEnd = matchStart + matches.length(0);这个while循环他不在里面走呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 13:49:23 | 显示全部楼层
难道正则表达式有问题吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:01:05 | 显示全部楼层
我明白了这个正则表式只能在适用没的换行的情况下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:43:33 | 显示全部楼层
还是不行while根本进去不了,我考很小的一个片断也不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:44:08 | 显示全部楼层
放在代码中的日文就可以,但是从外部文件考进来就不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:47:42 | 显示全部楼层
        CString strText; //文本框里的字符串
        CEditView::GetWindowText(strText);//获取文本框里的字符串
        CString ret=ProcessString(strText);
        CEditView::SetWindowText(ret);

CString CMFCApplication1View::ProcessString(CString& input)
{
        // TODO: 在此处添加实现代码.
        // 定义正则表达式
        std::wregex reg(L"〖HT《MS Mincho》〗([\\s\\S]*?)〖HT〗");
        std::wsmatch matches;
        std::wstring str = input.GetString();


        size_t lastPos = 0;
        std::wstring result;

        while (std::regex_search(str.cbegin() + lastPos, str.cend(), matches, reg)) {
                size_t matchStart = matches.position(0) + lastPos;
                size_t matchEnd = matchStart + matches.length(0);

                result += str.substr(lastPos, matchStart - lastPos);

                // 提取中间内容
                std::wstring matchedText = matches[1].str();

                // 添加标记到标点符号
                std::wstring modifiedText;
                for (wchar_t c : matchedText) {
                        if (c == L',' || c == L'。' || c == L'、' || c == L'!' || c == L'?') {
                                modifiedText += L"〖KG1*2〗";
                        }
                        modifiedText += c;
                }

                result += L"〖HT《MS Mincho》〗" + modifiedText + L"〖HT〗";

                lastPos = matchEnd;
        }
       
        result += str.substr(lastPos);
        CString ret=result.c_str();
       
        return        ret;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:48:14 | 显示全部楼层
这是代码可能哪儿不对
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 14:50:45 | 显示全部楼层
从外部进来怎么样才能变成utf-16
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 15:04:37 | 显示全部楼层
对了这个是在mfc中进行,文档视图中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 15:05:14 | 显示全部楼层
上面的代码该怎样改写
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 15:22:31 | 显示全部楼层
从文档视图中获取的文本
CString strText; //文本框里的字符串
CEditView::GetWindowText(strText);//获取文本框里的字符串
怎样变成utf-16形式的字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 15:43:11 | 显示全部楼层
我这个是从外部弄进来的文字在CEditView中显示估计计是utf-8,怎么样变成utf-16
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:30:17 | 显示全部楼层
怎么样确保从CEditVew读取的是utf-16编码,如何检测
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:33:46 | 显示全部楼层
//std::string utf8Str = CT2A(input);
//int utf16Length = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, NULL, 0);
//if (utf16Length == 0) {
//        return L"";
//}

//std::wstring utf16Str(utf16Length, 0);
//MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, &utf16Str[0], utf16Length);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:34:23 | 显示全部楼层
这样转不正确,转成utf-16都是方块加问号
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:36:46 | 显示全部楼层
根本在while那块进不去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:39:31 | 显示全部楼层
我说一下我是怎么操作,首先新建一个文档视图,把别处的文字粘过来,复制到单文档视了图中,然后用CEditView读取字符串,再运用你的上面的代码想让〖HT《MS Mincho》〗和〖HT〗之间的标点符号加〖KG1*2〗,结果出现过while根本进不去
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:40:26 | 显示全部楼层
while (std::regex_search(str.cbegin() + lastPos, str.cend(), matches, reg)) {
        size_t matchStart = matches.position(0) + lastPos;
        size_t matchEnd = matchStart + matches.length(0);

        result += str.substr(lastPos, matchStart - lastPos);

        // 提取中间内容
        std::wstring matchedText = matches[1].str();

        // 添加标记到标点符号
        std::wstring modifiedText;
        for (wchar_t c : matchedText) {
                if (c == L',' || c == L'。' || c == L'、' || c == L'!' || c == L'?') {
                        modifiedText += L"〖KG1*2〗";
                }
                modifiedText += c;
        }

        result += L"〖HT《MS Mincho》〗" + modifiedText + L"〖HT〗";

        lastPos = matchEnd;
}不运行这段代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-1-22 16:48:07 | 显示全部楼层
        setlocale(LC_ALL, "Japanese_Japan.932");
        // TODO: 在此添加命令处理程序代码
        CString strText; //文本框里的字符串
        CEditView::GetWindowTextW(strText);//获取文本框里的字符串
CString CMFCApplication1View::ProcessString(CString& input)
{
        // TODO: 在此处添加实现代码.
       
        size_t lastPos = 0;
        std::wstring result;

        while (std::regex_search(str.cbegin() + lastPos, str.cend(), matches, reg)) {
                size_t matchStart = matches.position(0) + lastPos;
                size_t matchEnd = matchStart + matches.length(0);

                result += str.substr(lastPos, matchStart - lastPos);

                // 提取中间内容
                std::wstring matchedText = matches[1].str();

                // 添加标记到标点符号
                std::wstring modifiedText;
                for (wchar_t c : matchedText) {
                        if (c == L',' || c == L'。' || c == L'、' || c == L'!' || c == L'?') {
                                modifiedText += L"〖KG1*2〗";
                        }
                        modifiedText += c;
                }

                result += L"〖HT《MS Mincho》〗" + modifiedText + L"〖HT〗";

                lastPos = matchEnd;
        }
       
        result += str.substr(lastPos);
        CString ret=result.c_str();
       
        return        ret;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-24 03:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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