本文主要是介绍过滤字符串只保留串中的数字字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdio.h>
int Count_Digit ( char *ptr,int *num );
int main()
{
char str[80];
int cnt,num;
gets(str);
cnt=Count_Digit(str,&num);
printf("There are %d digits in the string,they are %s\n",cnt,str);
printf("The number of inversions is %d\n",num);
return 0;
}
int Count_Digit ( char *ptr,int *num )
{
int i = 0;
int z = 1;
int a = 0;
char str[100] = { '\0' };
int sum = 0;
int k = 0;
for( i = 0 ; *(ptr+i) != '\0' ; i++)
{
if(*(ptr+i) <= '9' && *(ptr+i) >= '0' )
{
sum++;
a = (*(ptr+i) - '0' )*z + a; 难点:有关于字符串中的运算都是ascll值的运算
z = z * 10;
str[k] = *(ptr+i);
k++;
}
}
for( i = 0 ; i < k ; i++)
{
*(ptr+i) = str[i];
}
for( ; *(ptr+i) != '\0' ; i++)
{
*(ptr+i) = '\0';
}
*num = a;
return sum;
}
这篇关于过滤字符串只保留串中的数字字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!