C++:如何提取字符串中的汉字,数字!!!

C++:如何提取字符串中的汉字,数字!!!,第1张

/

以前回答过了。再贴一遍

/

#include<iostream>

#include<string>

//取得字符串字符个数,不限中英文

unsigned int GetStringCount(const std::string &s)

{

short ch;

unsigned cnt = ssize();

for(size_t i=0; i<ssize(); ++i)

{

ch = sat(i);

if(ch&0x1000) ++i,--cnt;

}

return cnt;

}

//取得以0为起始索引的指定位置字符

std::string GetString(std::string &s, size_t index)

{

short ch;

std::string res;

unsigned cnt = index;

for(size_t i=0; i<ssize() && i<cnt; ++i)

{

ch = sat(i);

if(ch&0x1000) ++i,++cnt;

}

ch = sat(i);

if(ch&0x1000) res=ssubstr(i,2);

else res=ssubstr(i,1);

return res;

}

//取字符串中的整型数,支持负数。string输入,vector输出

void get_int(const std::string& s, std::vector<int>& vi)

{

std::string::size_type size = ssize();

int element = 0;

bool now_digit = false;

bool negative = false;

for(std::string::size_type i=0; i<size; ++i)

{

if(sat(i)<='9' && sat(i)>='0')

{

now_digit = true;

element = element10 + sat(i)-'0';

}

else

{

if(sat(i) == '-') negative = true;

else

{

if(now_digit)

{

if(negative) element = -element;

vipush_back(element);

element = 0;

now_digit = false;

negative = false;

}

}

}

}

if(now_digit)

{

if(negative) element = -element;

vipush_back(element);

}

}

int main()

{

std::string s;

std::cin>>s;

std::cout<<GetStringCount(s)<<std::endl;

std::cout<<GetString(s,2)<<std::endl;

std::vector<int> vi;

get_int(s, vi);

std::vector<int>::iterator it = vibegin();

for(; it!=viend(); ++it) std::cout<<it<<std::endl;

return EXIT_SUCCESS;

}

1、首先在电脑上打开Excel表格,然后打开数据表,可以看到这组数据是文字与数字之间用连接起来的。

2、这时使用鼠标选中数据列A,然后点击页面上方的-数据选项,然后在数据菜单栏中选择-分列。

3、然后会d出对话框,选择按照分隔符号分列,点击下一步。

4、然后在新打开的页面中,勾选其它前面的方框,并在后面填入,点击下方的完成选项。

5、点击完成后,回到表格页面,数字就被分出来了。

如果你有大量数据要转换,并且"中文"、"数字"和"英文"的长度没有规律,只要你的数据都是按"中文"、"数字"和"英文"的先后顺序排列,就可以在WORD中进行处理。方法如下:

1、将EXECL中该列内容复制到WORD。

2、在WORD中选定全部内容,点“编辑”->“替换”,在“查找内容”框中输入:

^#

在“替换为”框中输入:

,^&,

点“全部替换”。

再在“查找内容”框中输入:

,,

在“替换为”框中不输入任何内容,点“全部替换”。

3、将WORD中的内容复制回EXECL中,选定该列,点“数据”->“分列”,选中“分隔符号”,点“下一步”,选中“逗号”,点“完成”。

using System;

using SystemCollectionsGeneric;

using SystemLinq;

using SystemText;

using SystemNet;

using SystemTextRegularExpressions;

namespace ConsoleApplication2

{

    class Program

    {

        static void Main(string[] args)

        {

            //用正则表达式替换,测试代码:

            string sourceStr ="中文文文57867";

            string pattern = @"\d+\w";

            string s=RegexReplace(sourceStr,pattern,"");

            ConsoleWrite(s);//测试输出

            ConsoleReadKey();

            

        }

    }

}

效果如下:

如有帮助,请采纳~

数组公式:

=MID(A1,MIN(IF(LENB(MID(A1,ROW($1:$99),1))=1,ROW($1:$99))),2LEN(A1)-LENB(A1))

以上就是关于C++:如何提取字符串中的汉字,数字!!!全部的内容,包括:C++:如何提取字符串中的汉字,数字!!!、Excel中如何在一个单元格中提取数字并转换成对应的汉字、如何将EXCEL单个储存格内的中文/字母/数字分别提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9577299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存