您的位置:首页 > 其它

删除所有ascii编码的字符和数字...

2010-08-01 15:16 405 查看
已知一个字串由GBK汉字和ascii编码的数字和字母混合组成,编写c语言函数实现从中去掉所有ascii编码的字母和数字(包括大小写),要求在原字符串上返回结果。

注:函数接口为: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;
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  filter string system 语言 c
相关文章推荐