以下是小编整理的从字符数组中删除特定字符(共含8篇),希望能够帮助到大家。同时,但愿您也能像本文投稿人“iia6115”一样,积极向本站投稿分享好文章。
#include
please input a string:wqeqwe Enter a character:w qeqePress any key to continue
+(NSString *) stringDeleteString:(NSString *)str{ NSMutableString *str1 = [NSMutableString stringWithString:str]; for (int i = 0; i < str1.length; i++) { unichar c = [str1 characterAtIndex:i]; NSRange range = NSMakeRange(i, 1); if (|| c == '“' || c == '.' || c == ',' || c == '(' || c == ')') { //此处可以是任何字符[str1 deleteCharactersInRange:range];--i; } } NSString *newstr = [NSString stringWithString:str1]; return newstr;}
可以删除nsstring中的数字、符号,或者修改其中的字符
用户从网上复制一些文字资料到Word2010文档中后,往往会出现很多手动换行符等特殊符号,由于这些特殊符号的存在,往往使得用户无法按照一般的方法设置文档格式。用户可以借助Word2010替换特殊字符的功能将不需要的特殊字符删除或替换成另一种特殊字符,以便正常设置Word2010文档格式。
以在Word2010中将手动换行符替换成段落标记,并将多余的段落标记删除为例,操作步骤如下所述:
第1步,打开含有手动换行符的Word2010文档,在“开始”功能区的“编辑”分组中单击“替换”按钮,如图1所示。
图1 单击“替换”按钮
第2步,在打开的“查找和替换”对话框中,确认“替换”选项卡为当前选项卡。单击“更多”按钮,在“查找内容”编辑框中单击鼠标左键。然后单击“特殊格式”按钮,在打开的“特殊格式”菜单中单击“手动换行符”命令,如图2所示,
图2 单击“手动换行符”命令
第3步,单击“替换为”编辑框,然后单击“特殊格式”按钮,在打开的“特殊格式”菜单中单击“段落标记”命令,如图3所示。
图3 单击“段落标记”命令
第4步,在“查找和替换”对话框中单击“全部替换”按钮,如图4所示。
图4 单击“全部替换”按钮
第5步,“查找和替换”工具开始将“手动换行符”替换成段落标记,完成替换后单击“确定”按钮即可,如图5所示。
图5 完成替换操作
第6步,如果将“手动换行符”替换成“段落标记”后出现很多空白段落,可以通过替换地方法将这些空白段落删除。在“替换”选项卡的“查找内容”编辑框中输入两个段落标记,然后在“替换为”编辑框中输入一个段落标记。输入完毕单击“全部替换”按钮即可。
除了直接输入外,从已存在的单元格内容中提取特定字符输入,绝对是一种省时又省事的方法,特别是对一些样式雷同的信息更是如此,比如员工名单、籍贯等信息,
如果我们想快速从A4单元格中提取称谓的话,最好使用“=RIGHT(源数据格,提取的字符数)”函数,它表示“从A4单元格最右侧的字符开始提取2个字符”输入到此位置。
当然,如果你想提取姓名的话,则要使用“=LEFT(源数据格,提取的字符数)”函数了,
还有一种情况,我们不从左右两端开始,而是直接从数据中间提取几个字符。比如我们要想从A5单元格中提取“武汉”两个字时,就只须在目标单元格中输入“=MID(A5,4,2)”就可以了。意思是:在A5单元格中提取第4个字符后的两个字符,也就是第4和第5两个字。
点击阅读更多学院相关文章>>
分享到
随Vista系统一起推出的“微软雅黑”字体,以其对液晶显示器的良好支持,很快获得了很多用户的青睐,就连一些Windows Xp用户也在系统中安装了“微软雅黑”,但是,由于微软对中文的了解不够深入,导致一个严重的BUG,就是在微软雅黑字体下,中文双引号不能分出左右,全部显示为“直引号”(图1)。
图1
很多朋友,既不愿放弃漂亮的微软雅黑字体,又不想用它的“直引号”,这该如何是好呢?下面就让我们一起,在文字使用微软雅黑字体的提前下,只将双引号的字体改成宋体,从而使其能够分辨左右,
用WPS文字打开要处理的文档,按下“Ctrl+F”键,调出“查找”对话框,在“查找内容”中输入[“”],注意,中括号要在英文状态下输入,而双引号在中文状态下输入,勾选“突出显示所有在该范围找到的项目”,并在“高级”选项中勾选“使用通配符”,如图2所示。
图2
点击“查找全部”后,点击“关闭”按钮,此时,所有的中文双引号都被选中了,如图3所示。
图3
下面的事情就简单了,在“格式”工具栏中将这些双引号的字体设置为“宋体”,就圆满了(图4)。
图4
就指向指针的指针,很早以前在说指针的时候说过,但后来发现很多人还是比较难以理解,这一次我们再次仔细说一说指向指针的指针!
先看下面的代码,注意看代码中的注解!
#include
#include
usingnamespacestd;
voidprint_char(char* array[],intlen);//函数原形声明
voidmain(void)
{
//-----------------------------段1-----------------------------------------
char*a[]={”abc“,”cde“,”fgh“};//字符指针数组
char* *b=a;//定义一个指向指针的指针,并赋予指针数组首地址所指向的第一个字符串的地址也就是abc\0字符串的首地址
cout<<*b<<”|“<<*(b+1)<<”|“<<*(b+2)/-------------------------------------------------------------------------
//-----------------------------段2-----------------------------------------
char* test[]={”abc“,”cde“,”fgh“};//注意这里是引号,表示是字符串,以后的地址每加1就是加4位(在32位系统上)
intnum=sizeof(test)/sizeof(char*);//计算字符串个数
print_char(test,num);
cin.get;
//-------------------------------------------------------------------------
}
voidprint_char(char* array[],intlen)//当调用的时候传递进来的不是数组,而是字符指针他每加1也就是加上sizeof(char*)的长度
{
for(inti=0;i{
cout<<*array++<}
}
下面我们来仔细说明一下字符指针数组和指向指针的指针,段1中的程序是下面的样子:
char*a[]={”abc“,”cde“,”fgh“};
char* *b=a;
cout<<*b<<”|“<<*(b+1)<<”|“<<*(b+2)<
char *a[]定义了一个指针数组,注意不是char[], char[]是不能同时初始化为三个字符的,定义以后的a[]其实内部有三个内存位置,分别存储了abc\0,cde\0,fgh\0,三个字符串的起始地址,而这三个位置的内存地址却不是这三个字符串的起始地址,在这个例子中a[]是存储在栈空间内的,而三个字符串却是存储在静态内存空间内的const区域中的,接下去我们看到了char* *b=a;这里是定义了一个指向指针的指针,如果你写成char *b=a;那么是错误的,因为编译器会返回一个无法将char* *[3]转换给char *的错误,b=a的赋值,实际上是把a的首地址赋给了b,由于b是一个指向指针的指针,程序的输出cout<<*b<<”|“<<*(b+1)<<”|“<<*(b+2)<结果是>结果是>
abc
cde
fgh
可以看出每一次内存地址的+1操作事实上是一次加sizeof(char*)的操作,我们在32位的系统中sizeof(char*)的长度是4,所以每加1也就是+4,实际上是*a[]内部三个位置的+1,所以*(b+1)的结果自然就是cde了,我们这时候可能会问,为什么输出是cde而不是c一个呢?答案是这样的,在c++中,输出字符指针就是输出字符串,程序会自动在遇到\0后停止.
我们最后分析一下段2中的代码,段2中我们调用了print_array()这个函数,这个函数中形式参数是char *array[]和代码中的char *test[]一样,同为字符指针,当你把参数传递过来的时候,事实上不是把数组内容传递过来,test的首地址传递了进来,由于array是指针,所以在内存中它在栈区,具有变量一样的性质,可以为左值,所以我们输出写成了,cout<<*array++<
到这里这两个非常重要的知识点我们都说完了,说归说,要想透彻理解希望读者多动手,多观察,熟能生巧!
420){this.width=420}” alt=“” />
内存结构示意图!
//程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要,请务必著名出处和作者
在Word中如何输入国际字符?用键盘快捷键是一种很好的方法,
对于同时按下两个或多个键的键盘快捷键,在“Microsoft Word 帮助”中用加号 (+) 分隔要按下的键。
对于按下一个键后紧接着按另一个键的键盘快捷键,用逗号 (,) 分隔要按下的键,
若要使用包含 Shift 的组合键键入小写字符,请同时按下 Ctrl+Shift+符号键,然后在键入字母前将其释放。
注释如果您要大量输入其他语言的字符,最好切换不同的键盘。
隐藏单元格内容
选中要隐藏内容的单元格区域,右击选择“设置单元格格式”,在“数值”选项卡的“分类”列表中选择“自定义”,在“类型”输入框中输入三个半角的分号“;;;”(如图1),再切换到“保护”选项卡下,单击选中“隐藏”复选项,确定后单元格内容就被隐藏了,
再单击菜单“保护/保护工作表…”,设置密码保护工作表,即可彻底隐藏单元格内容。要取消隐藏得先单击菜单“保护/撤消保护工作表”。然后再从“设置单元格格式”中选择相应数值格式,或者选中单元格区域单击菜单“编辑/清除/格式”即可恢复显示。
值得大家注意的是,保护工作表后单元格是无法修改的。若希望保护后仍可修改单元格内容,可先选中需要输入的单元格,右击选择“设置单元格格式”,从“保护” 选项卡中单击取消“锁定”复选项前的“√”,再进行保护工作表设置。这样被隐藏的单元格照样可以输入或修改,但是输入后单元格内容会被隐藏。
隐藏行列
有一些特殊表格像“工资单”、“人员记录”等可能就经常需要在打印前隐藏工作表中“等级”、“出生年月”、“扣费标准”等行列,在编辑时又要显示出,这样重复切换是比较麻烦的。对此有一个简单的方法可快速隐藏、显示指定行列。以隐藏“C:D”、“G”、“J”列为例:
选中“C:D”列,单击菜单“数据/组及分级显示/组合”,此时工作表上会显示分级的1、2按钮(如图2),
重复这一步,分别选中G列、J列进行组合。现在只要单击1按钮即可隐藏“C:D”、“G”、“J”列,单击2按钮则恢复显示。对于行的设置也是一样,只是行的1、2按钮是左侧。
隐藏的行或列在通过拖动选择或按Shift键选中时会同时被选中,复制粘贴后会发现隐藏内容也同时被复制过来了。对此可在拖动或按Shift键选中区域后,再按下“Alt ;”键,这样就会只选中可见单元格,而不包括那些被隐藏的行或列。
提示:一般对象或图形默认会随所在的行列一起被隐藏,若不想同时隐藏图形,可双击图形打开“设置图片格式”窗口,在“属性”选项卡中选中“大小、位置固定”选项。
隐藏工作表
单击“工具/宏/Visual
Basic 编辑器”,在弹出窗口左侧选中要隐藏的工作表名,如:“Sheet4”,在属性窗口中把“Visible”项的值设置为“2- xlsheetveryHidden”(如图3),若没有属性窗口可按F4显示。然后右击“VBAProject(XXXX.xls)”选择 “VBAProject
属性”,在“保护”选项卡中选中“查看时锁定工程”,并输入密码,保存文档退出。以后想展开 VBAProject(XXXX.xls)时会弹出一个要求输入密码的对话框,没密码就别想查看或修改了。用这方法隐藏的工作表,不能通过单击“格式/工作表/取消隐藏”取消隐藏,也不会影响其它工作表操作。