6-1 过滤字符串只保留串中的字母字符 (10 分)
请编写一个函数fun,函数的功能是:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。
函数接口定义:
int fun(char *ptr);
其中 ptr
是用户传入的参数。函数的功能是:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数返回。
裁判测试程序样例:
#include <stdio.h>
int fun(char *ptr);
int main()
{
char str[80];
int s;
gets(str);
s=fun(str);
printf("The new string is :");puts(str);
printf("There are %d char in the new string.",s);
return 0;
}
/* 请在这里填写答案 */
输入样例:
hjds34jj
输出样例:
The new string is :hjdsjj
注:1.对处理后的字符串进行重新排序,尤其是会删除或加入一些字符时可以用这个方法:在有字符串符合条件后指针+1
2.在字符串的最后记得加上'\0'标志着新字符数组的结束,否则答案错误
int fun(char *ptr){
int i=0,j=0;
for(i=0;*(ptr+i)!='\0';i++){
if((*(ptr+i)<='Z'&&*(ptr+i)>='A')||*(ptr+i)<='z'&&*(ptr+i)>='a'){
*(ptr+j)=*(ptr+i);
j++;
}
}
*(ptr+j)='\0';
return j;
}