删除所有ascii编码的字符和数字...
2010-08-01 15:16
405 查看
已知一个字串由GBK汉字和ascii编码的数字和字母混合组成,编写c语言函数实现从中去掉所有ascii编码的字母和数字(包括大小写),要求在原字符串上返回结果。
注:函数接口为:int filter_ascii(char* gbk);汉字的GBK编码范围是0x8140-0xFEFE。
注:函数接口为:int filter_ascii(char* gbk);汉字的GBK编码范围是0x8140-0xFEFE。
#include <cstdlib> #include <iostream> using namespace std; char* filter_ascii(char* str) { int oldPtr = 0; int newPtr = 0; while(str[oldPtr] != '/0') { if(str[oldPtr] > 0x81 || str[oldPtr] == 0x81 && str[oldPtr + 1] >= 0x41) { str[newPtr++] = str[oldPtr++]; str[newPtr++] = str[oldPtr++]; } else if(str[oldPtr] >= '0' && str[oldPtr] <= '9' || str[oldPtr] >= 'a' && str[oldPtr] <= 'z' || str[oldPtr] >= 'A' && str[oldPtr] <= 'Z') { oldPtr++; } else str[newPtr++] = str[oldPtr++]; } str[newPtr] = '/0'; return str; } int main(int argc, char *argv[]) { char string[] = "fsdfd#$#$#%>?>><?<>?中国&*&()*hJJKHJHK3124324"; cout << filter_ascii(string) << endl; system("PAUSE"); return EXIT_SUCCESS; }
相关文章推荐
- 百度面试题:删除所有ascii编码的字符和数字
- (顺序表)设计算法删除所有数字字符
- (顺序表)设计算法删除所有数字字符
- (顺序表)设计算法删除所有数字字符
- 用js替换除数字与逗号以外的所有字符的代码
- 从一个字符串中删除所有的某个字符
- C语言 字符串 编一个程序,输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
- 剑指Offer:从第一个字符串中删除第二个字符串中出现过的所有字符
- 在第一个字符串中删除在第二个字符串中出现的所有字符
- C++:如何删除string对象的末尾非数字字符
- LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)
- 请编写函数fun(char *s),其功能是:删除字符串中的数字字符。主函数中输入字符串,调用函数,并输出结果字符串。例如若输入的字符串是:34AB9C6DE, 则应输出:ABCDE
- 删除字符串中非数字的字符
- 给定一个排序的链表,删除所有具有重复数字的节点,从原始列表中只留下不同的数字。
- 关于“从第一字符串中删除第二个字符串中所有的字符”方法学习
- 从第一个字符串中删除第二个字符串中所有的字符
- 从第一个字符串中删除在第二个字符串中出现过的所有字符
- (Delphi中处理字符串)截取中文字符和英文字符,去除所有数字
- 编写算法,从字符串S中删除所有和字符串t相同的字符
- 删除指定字符前的所有内容