- 已知一个字符串表示一个实数(不超过100位),请输出其整数部分,且输出不含前导0,但如果该整数为0,则输出0
举例:0012350.1000 变为 1235
这里需要注意下判断是否前面全是0,需要保留一个0
代码如下:
// 已知一个字符串表示一个实数(不超过100位),请输出其整数部分,且输出不含前导0,但如果该整数为0,则输出0
#include <stdio.h>
#include <string.h>
#define N 110
int main()
{
char str[N], *p=str, *q;
scanf("%s",str);
//循环结束后p指向第一个非0字符
while(*p == '0')
p++;
//如果整数部分全部为0,则保留一个0
if(*p=='\0'|| *p=='.')
p--;
//如果字符串p含有小数点和小数部分,则删除小数点和小数部分
q=strchr(p,'.'); //找到小数点
if(q!=NULL) //若存在小数点
*q='\0'; //将小数点置为'\0'
puts(p);
return 0;
}