C语言删除有用数(浮点数)后面的0

来源:互联网 发布:维普数据库电话 编辑:程序博客网 时间:2024/06/06 00:01
  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3. #include <string.h> 
  4. void RemoveZero(char *pStr,char *pOutStr)
  5. {
  6.    int    iRes  = 0        ;
  7.    int    iTemp = 0        ;
  8.    int    iNum  = 0        ;
  9.    char   caOutput[20]     ;
  10.   memset(caOutput,NULL,sizeof(caOutput));
  11.   iRes  = strlen(pStr);
  12.   iTemp = iRes ;
  13.   iRes  -= 1 ;
  14.   for(iRes; iRes>=0; iRes--)
  15.   {
  16.     if(pStr[iRes] == '0' || pStr[iRes] == '.')
  17.     {
  18.       ++iNum;
  19.       if(iNum == iTemp)
  20.       {
  21.         strcpy(caOutput,"0");
  22.       }
  23.       continue ;
  24.     }else
  25.     if(pStr[iRes] != '0' && pStr[iRes] != '.')
  26.     {
  27.       strncpy(caOutput,pStr,iTemp-iNum);
  28.       break ;
  29.     }else
  30.     if(pStr[iRes] == '.')
  31.     {
  32.       strncpy(caOutput,pStr,iTemp-iNum);
  33.       break ;
  34.     }
  35.   }
  36.   strcpy(pOutStr,caOutput);
  37. }
  38. int main()
  39. {
  40.   double dRate = 0.0000 ;
  41.   char   caSecPread[20]   ;
  42.   char   caOutput[20]     ;
  43.   memset(caSecPread,NULL,sizeof(caSecPread));
  44.   memset(caOutput,NULL,sizeof(caOutput));
  45.   sprintf(caSecPread,"%lf",dRate);
  46.   /*int f = strlen(caSecPread);
  47.   for (int x=0; x<f; x++)
  48.   {
  49.     printf("%c/n",caSecPread[x]);
  50.   }
  51. */
  52.     RemoveZero(caSecPread,caOutput);
  53.   printf("Output string is ==> <%s>/n",caOutput);
  54.   return 0;
  55. }
原创粉丝点击