C语言实现:输入一个长度小于80的字符串,修改此字符串,将字符串中的字母字符滤掉掉,并统计新生成串中包含的字符个数。主函数如下,请实现函数fun。
主函数代码:
#include <stdio.h>
int main(void)
{
char str[100];
int s;
printf("input a string:");
gets(str);
printf("The original string is :");
puts(str);
s = fun(str);
printf("The new string is :");
puts(str);
printf("There are %d char in the new string.\n",s);
return 0;
}
全部代码实现如下:
#include <stdio.h>
#include<string.h>
int fun(char p[])
{
int a = 0, b = 0;
char q[100];
while (p[a] != '\0')
{
if ((p[a] >= 65 && p[a] <= 90) || (p[a] >= 97 && p[a] <= 122)) //根据ASCII码判断
a++;
else
{
q[b] = p[a];
b++;
a++;
}
}
q[b] = '\0';
strcpy(p, q);
int len = strlen(p);
return len;
}
int main(void)
{
char str[100];
int s;
printf("input a string:");
gets(str);
printf("The original string is :");
puts(str);
s = fun(str);
printf("The new string is :");
puts(str);
printf("There are %d char in the new string.\n", s);
return 0;
}
运行结果效果如下:
input a string:xiaoyuan123
The original string is :xiaoyuan123
The new string is :123
There are 3 char in the new string.