/
以前回答过了。再贴一遍
/
#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单个储存格内的中文/字母/数字分别提取出来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)