0017 过滤字符串只保留串中的字母字符

6-1 过滤字符串只保留串中的字母字符 (10 分)

请编写一个函数fun,函数的功能是:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。

函数接口定义:

int fun(char *ptr);

其中 ptr 是用户传入的参数。函数的功能是:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数返回。

裁判测试程序样例:

#include 
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;
} 

 

你可能感兴趣的:(PTA)