写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理。经过处理后的字符串其内容按字母,数字,符号的顺序存放。函数声明如下:
void ParseString(char* pstr);
要求:
a. 不能改函数声明;
b. 不改变字母数字等在字符串中原有的出现顺序;
c. 直接使用pstr所值指缓冲区,不允许另开缓冲区。
例如:给定的字符串为:A,2.d?3!e4r87we79...
输出结果为:Aderwe2348779,.?!...
#include"stdio.h"
#include"string.h"
void ParseString(char* pstr)
{
printf("Old:%s/n",pstr);
int length=strlen(pstr);
char s1[100],s2[100],s3[100];
int a=0,b=0,c=0;
for(int i=0;i<length;i++)
{
if((pstr[i]>='A'&& pstr[i]<='Z') || (pstr[i]>='a'&& pstr[i]<='z'))
{
s1[a]=pstr[i];
a++;
}
else if(pstr[i]>='0'&& pstr[i]<='9')
{
s2[b]=pstr[i];
b++;
}else
{
s3[c]=pstr[i];
c++;
}
}
s1[a]='/0';s2[b]='/0';s3[c]='/0';
strcat(s1,s2);
strcat(s1,s3);
printf("new:%s/n",s1);
}
void main()
{
char pstr[100];
printf("please input a string:/n");
scanf("%s",pstr);
ParseString(pstr);
}