精华内容
下载资源
问答
  • 1、浮点数 float与double都只能接近零,但无法表示0,有+inf,-inf表示无穷大无穷小 float有效数字是7位,scanf读取用%f,printf打印可以用%f或%e double有效数字是15位,scanf读取用%lf,printf用%f,%e 计算机表达的...

    1、浮点数
    float与double都只能接近零,但无法表示0,有+inf,-inf表示无穷大和无穷小
    float有效数字是7位,scanf读取用%f,printf打印可以用%f或%e
    double有效数字是15位,scanf读取用%lf,printf用%f,%e
    计算机表达的只是离散的数,要是赋值给一个没有的数它只能近似的赋给一个离它最近的数。
    a=1.234f:不标注f则为double类型,浮点数不能直接相等用fabs(a-b)<1e-8,不能用浮点数做精确运算,浮点数内部不是二进制数,而是一个编码的数。没有特殊需要只用double,不会比float慢。

    2、字符类型
    char既是整数又是一种字符
    ''也是一种字符
    printf和scanf里用%c来输出

    char c;
    char d;
    c=1;
    d='1';
    printf(c==d)//0
    printf("c=%d\n",c);//1
    printf("d=%d\n",d);//49,是ASCII码
    //'A'是65
    scanf("%c",&c);->1//作为整数c是49,作为char是'1'
    scanf("%d",&i);c=i;->1//c作为整数是1,作为char是''
    ->49:
    //整数是49,char是'1'
    49=='1'//结果是1
    

    字符计算

    char c='A';
    c++;
    printf("%c",c)//结果是B
    //在ASCII码中大写字母和小写字母是分开排列的
    //up+'a'-'A'可以把一个大写字母变成小写字母
    //low+'a'-'A'可以把一个小写字母变成大写字母
    

    3、字符串
    char world[]={‘H’,‘O’,‘l’,’!’,’\0’};
    末尾表示整数0,但是与’0’不同。总共有5个,有\0才会成为字符串,否则不能有字符串方式运算。\0标志字符串的结束,但不是字符串的一部分,计算长度也不会包括它。
    字符串的储存方式就是数组或者指针,可以用数组或者指针的方式去使用它
    string.h有很多字符串函数

    //字符串定义
    char *str="Hello";
    char word[]="Hello";
    char line[10]="Hello";
    //占六个空间,会自动生成一个结尾\0,数组长度是6,但字符串长度是5
    //两个相邻字符串会被自动连接
    
    //字符串常量
    char *str="Hello";
    char *s="Hello";
    s[0]='B';//打印s[0]会出错
    //打印str后与s的地址相同,且很小,位于程序的代码段,是只读的。
    
    //用数组方式定义字符串而不用指针定义
    char s[]="Hello";//会在正常的地址存储
    s[0]='A';//可以修改,在本地变量里
    

    用指针做为字符串,多用于不改变的字符串,处理参数或者动态空间分配。

    char *s="Hello";
    char *t;
    t=s;//没有制造新的字符串,而是让t指向s的字符串
    

    4、字符串输入输出

    char string[8];
    scanf("%s",string);//scanf读入一个单词,但空格,tab或者回车为止
    //输入Hello World
    printf("%s##\n",string);
    //打印为Hello##,没有包含空格,没有读到world
    
    //如果程序中有两个scanf
    char string[8];
    char string1[8];
    scanf("%s",string);//scanf读入一个单词,但空格,tab或者回车为止
    scanf("%s",string1);
    //仍然输入Hello World!
    printf("%s##%s\n##",string,string1);
    //打印为Hello##world!##,没有包含空格,空格只是分隔符。
    

    scanf是不安全的,因为不知道输入数组的大小

    可以在scanf里加入scanf(“7%s”);这样只会接受7个字符,这样就不会使程序出现问题。剩下的未读取内容会交给下一个scanf读取

    char * string;
    scanf("%s",string);
    //不能认为char*是字符串类型而直接使用string,第一行只是定义了一个指针变量,没有只想地址,scanf可能会使string指向其它地方,可能会引起程序崩溃。
    //指针一定要指向一个有效的地址
    char buffer[100]="";//空字符串
    //buff[0]='\0'
    char buffer[]="";//数组长度只有一
    

    5、字符串数组

    char **a;
    //a是一个指向另一个指针的指针,那个指针指向一个字符(串),并不是字符串数组
    char a[][10];//第二维一定要有具体值
    //a[0]相当于char[10]
    char *a[];//这是最好的
    //a[0]相当于char *,对于每个元素的大小没有限制,因为它是指向其它的字符串
    
    //main函数的参数
    int main(int argc,char const *argc[]){
    //argc是后面那个的大小
        int i;
        for (i=0;i<argc;i++){
            printf("%d:%s\n",i,argv[i]);
        }
    }
    //结果0:/a.out
    //但main函数可以读到在执行命令时在后面输入的东西
    

    5、putchar和getchar()

    int putchar(int c);
    //向标准输出写一个字符
    //返回写了几个字符,EOF(-1)表示写失败
     int getchar(void);
     //从标准输入读入一个字符,返回类型是int,要返回EOF表示输入结束
    #include <stdio.h>
    
    int main(int argc,char const *argc[])
    {
        int ch;
        while ((ch=getchar())!=EOF){
            putchar(ch);
        }
        printf("EOF\n");
        return 0;
    }
    //输入1231412412
    //返回1231412412
    //之后还可以继续输入(输入EOF,-1都没用),用ctrl+c可以强制结束,ctrl+z会返回EOF,说明遇到了EOF
    

    6、string.h

    strlen(s);//返回s的长度,不包括/0
    strcmp(s1,s2);//比较两个字符串,相等返回0,若s1>s2返回正数还能比较出谁大谁小
    //若是单纯比较s1==s2是不对的,因为这是地址的比较,
    //strcmp('a','A')返回32,是'a'-'A'
    /*从0开始第一个不相等的相减,返回结果
    int mycmp(const char *s1,const char *s2){
        int idx=0;
        while(*s1==s*2 and *s1!='\0'){
            s1++;//移动指针
            s2++;
        }
        return *s1-*s2;
    }
    */
    strcpy(char*restrict dst,const char* restrict src);
    //把src的字符串拷贝到dst
    //restrict表明src和dst不重叠,指的是存储位置不能有交叉
    //返回dst
    
    char *dst=(char*)malloc(strlen(src)+1);
    strcpy(dst,src);
    /*
    char* mycpy(char* dst,const char* src){
        int idx=0;
        while (src[idx]!='\0'){
            dst[idx]=src[idx];
            idx++;
        }
        idx++;
        dst[idx]='\0';//或者改成do while
        return dst;
    }
    */
    
    //strcat做连接
    char* strcat(char *restrict s1,const char * restrict s2);
    //把s2拷贝到s1后面,接成一个长的字符串,返回s1。
    //s1必须有足够空间
    //从dst[strlen(dst)]开始copy
    
    s//trcpy和strcat都可能出现安全问题,可以使用
    strncpy(chs1,s2,size_t n);
    //最多可以拷贝多少字符
    strncat(s1,s2,n);
    strncmp(s1,s2,n);//比较前n个
    
    //字符串里找字符第一次出现的位置
    char* strchr(const char *s,int c);
    //返回NULL表示没找到,找到则返回指针,指向要找的字符
    char s[]="hello";
    char *p=strchr(s,'l');
    printf("%s\n",p);
    return 0;
    //结果是llo
    
    
    char s[]="hello";
    char *p=strchr(s,'l');
    char c=*p;
    *p='\0';
    char *t=(char *)malloc(strlen(s)+1);
    srcpy(t,s);
    printf("%s\n",t);
    free(t);
    return 0;
    //结果是he,因为把5p变成了\0,这样s就被截断了
    
    char *strstr(const char *s1,const char *s2);//在s1里找s2
    char *strcasestr(const char *s1,const char *s2)//忽略大小写寻找
    
    展开全文
  • 请定义一个类模板,利用它分别实现两个整数、浮点数和字符串的比较。在main函数中应用并测试之。 输入说明 : 每组输出分3行: 第一行:标志行('i'代表输入两个整数进行比较;'f'代表输入两个浮点数进行比较;'s'...

    问题描述 :

    请定义一个类模板,利用它分别实现两个整数、浮点数和字符串的比较。在main函数中应用并测试之。

    输入说明 :

    每组输出分3行:

    第一行:标志行('i'代表输入两个整数进行比较;'f'代表输入两个浮点数进行比较;'s'代表输入两个字符串进行比较;'e'代表输入结束。)

    第二行和第三行分别对应进行比较的两个数据

     

    输入行之间无多余的空行,每行的开头和结尾无多余的空格

     

    输入可连续进行。

    输出说明 :

    每组输入数据对应一行输出数据,为2个比较数据之中的较大者。

     

    组与组的输出行之间无多余的空行,每行的开头和结尾无多余的空格。

    输入范例 :

    i
    212
    323
    f
    1.1
    0.51
    s
    China
    china
    i
    3243
    253
    e

    输出范例 :

    323
    1.1
    china
    3243

    解题代码: 

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<cstring>
    #include<string>
    #include<map>
    #include<algorithm>
    #include<set>
    #include<vector>
    #include<queue>
    using namespace std;
    class check {
    private:
    	int a1, a2;
    	string s1, s2;
    	double f1, f2;
    	int p;
    public:
    	check();
    	void getin(int a, int b);
    	void getin(double a, double b);
    	void getin(string a, string b);
    	int huge1();
    	double huge2();
    	string huge3();
    };
    check::check()
    {
    	;
    }
    void check::getin(int a, int b)
    {
    	a1 = a;
    	a2 = b;
    	p = 1;
    }
    void check::getin(double a, double b)
    {
    	f1 = a;
    	f2 = b;
    	p = 2;
    }
    void check::getin(string a, string b)
    {
    	s1 = a;
    	s2 = b;
    	p = 3;
    }
    int check::huge1()
    {
    	return max(a1, a2);
    }
    double check::huge2()
    {
    	return max(f1, f2);
    }
    string check::huge3()
    {
    	return max(s1, s2);
    }
    int main()
    {
    	char swit;
    	check w;
    	while (cin >> swit)
    	{
    		if (swit == 'e')
    			break;
    		if (swit == 'i')
    		{
    			int x, y;
    			cin >> x >> y;
    			w.getin(x, y);
    			cout << w.huge1()<<endl;
    			continue;
    		}
    		if (swit == 'f')
    		{
    			double x, y;
    			cin >> x >> y;
    			w.getin(x, y);
    			cout<<w.huge2() << endl;
    			continue;
    		}
    		if (swit == 's')
    		{
    			string x, y;
    			cin >> x >> y;
    			w.getin(x, y);
    			cout << w.huge3() << endl;
    			continue;
    		}
    	}
    	return 0;
    }

     

    展开全文
  • 浮点数字符串函数fcvtgcvt

    千次阅读 2015-07-01 10:19:20
    fcvt,函数名,把一个浮点数转换为字符串。 用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign); 参数: value:要转换的浮点数输入参数 ndigit:取小数的位数,输入参数 ...
    fcvt,函数名,把一个浮点数转换为字符串。
    用 法: char *fcvt(double value, int ndigit, int *decpt, int *sign);
    参数:
    value:要转换的浮点数,输入参数
    ndigit:取小数的位数,输入参数
    decpt:表示小数点的位置,输出参数
    sign:表示value的符号,0为正数,1为负数,输出参数


    函数名: gcvt
    用 法: char *gcvt(double value, int ndigit, char *buf);
    包含头文件:<stdlib.h>
    参数
    value——被转换的值。
    Digits——存储的有效数字位数。
    Buffe——结果的存储位置。
    返回一个指向结果的存储位置的指针[1] 
    说明
    gcvt函数把一个浮点值转换成一个字符串(包括一个小数点和可能的符号字节)并存储该字符串在buffer中。该buffer应足够大以便容纳转换的值加上结尾的空字符('\0'),它是自动添加的。如果一个缓冲区的尺寸为digits的尺寸+1,该函数覆盖该缓冲区的末尾。这是因为转换的字符串包括一个小数点以及可能包含符号和指数信息。不提供上溢出。gcvt试图以十进制格式产生digits数字,如果不可能,它以指数格式产生digits数字,在转换时可能截除尾部的0。
    展开全文
  • //从键盘终端输入二个数,//如果是数字字符,则参加运算//如果是字符串,打印符串,并提示不能参加运算!public class FloatInOut{ public static void main(String[] args)throws IOException { String s1=""; ...

    package floatinout;

    import java.io.*;
    //从键盘终端输入二个数,
    //如果是数字字符,则参加运算
    //如果是字符串,打印符串,并提示不能参加运算!

    public class FloatInOut
    {
      public static void main(String[] args)throws IOException
      {
        String s1="";
        String s2="";
        System.out.println("请输入两个数:");
        BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
        BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
        s1=br1.readLine();
        s2=br2.readLine();
        try{
          new Float(s1);
          try{
            new Float(s2);
            floatSum(s1,s2);
          }catch(Exception e2){
            if(s2.equals(" "))System.out.println("您输入的第二个字为空格");
              else{
                System.out.println("你输入的第二个是字符串"+s2+"不能参加运算");
              }
          }
        }catch(Exception e1){
          if(s1.equals(" "))System.out.println("你输入的第一个字为空格");
            else if(s1.equals("/r"))System.out.println("您输入的第一个字是回车");
              else{
                System.out.println("您输入的第一个是字符串"+s1+"不能参加运算");
              }
        }
      }

      public static void floatSum(String str1,String str2)
      {
        float fv1=Float.parseFloat(str1);
        float fv2=Float.parseFloat(str2);
        float sum=fv1+fv2;
        System.out.println("您输入的二个数和是:"+sum);
      }
    }

    展开全文
  • 这部分学习的是数据类型的浮点数字符这两个类型,主要关于它们的类型介绍、输入输出等的问题,另外还学习了类型转换的方法。 1. 浮点类型 float 32字长 有效数字:7 double 64字长 有效数字:15 2. 浮点数输入...
  • 一、字符串转浮点数 double StrToDouble(const char *s) { if (s == nullptr) { printf("输入字符串为空"); exit(-1); } int i = 0; int k = 0; double j; int flag =1; double result...
  • double浮点数字符串算法

    千次阅读 2014-03-18 14:07:25
    之前写过一个,浮点数字符串类型时,需要一个变量,指定小数点后几位,也就是有效位。 一般情况下为6位,当前大部分编译环境都是这样的。 所以我的实现方式是 1:对浮点数取证,方法很简单把浮点数强制转化为...
  • 浮点数字符在计算机中的表示

    千次阅读 2017-01-03 22:34:45
    在计算机中,与所有的其他数据一样,浮点数也要用二进制表示,然而浮点数的二进制表示比整数稍微复杂些.根据IEEE 754标准规定: 1.浮点数的规格化表示.用如下形式:规格化数 = 数符*1.XXX...XXX*2^(指数); 2.单精度...
  • 在类模板外定义各成员函数。 #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; template&lt;class numtype&gt; class Compare { public: ... ...
  • 浮点数字符串转换成浮点数实现

    千次阅读 2014-11-24 12:59:18
     写一个转换函数,该函数的输入是一个表示浮点数字符串,把该字符串转换成浮点数并输出。条件:请考虑各种情况,并且代码中的循环尽量少,不能调用API或者crt库中的函数。例如:输入字符串"345.7",则输出浮点数...
  •  这次主要是一个整数int转为各种进制字符串以及浮点数double转为字符串的操作。当然,前提条件是不可使用库函数sprintf,由于嵌入式开发环境,调用库后可能编译后的可执行文件过大,这里就是自己封装的一个简单转换...
  • 基本数据类型介绍:整数,浮点数字符串: 在介绍之前先来了解一个python在终端窗口运行的解释器,在你安装好python之后,运行终端命令行,输入python后回车,你会看到你的python版本以及提示信息&amp;gt;&...
  • 二、float函数将整数和字符串转换成浮点数。   举例: 1 aa = float( " 124 " ) # Correct 2 print " aa = " , aa # result = 124.0 3 bb = float( " ...
  • 字符+浮点数输入输出

    千次阅读 2014-12-01 08:09:39
    输入在一行中顺序给出浮点数1、整数、字符浮点数2,其间以1个空格分隔。 【输出】 在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。 【输入示例】 2.12 88 c 4.7 【输出...
  • 浮点数字符串转换成浮点数实现(2)

    万次阅读 2015-07-28 23:23:59
    其实几年前实现过一个面试题版本的,参考:浮点数字符串转换成浮点数实现。 最近因为工作的关系又拿了出来,做了一些简单的修改,支持了前端空格处理,溢出检测等等,当然精度处理这个难度有点大,没有特殊处理。...
  • C#判断字符串是否为浮点数和整数

    千次阅读 2019-04-29 11:05:39
    //判断字符串是否为浮点数 private bool IsFloat(string str) { string regextext = @"^\d+\.\d+$"; Regex regex = new Regex(regextext, RegexOptions.None); return regex.IsMa...
  • 个人编写的编辑框类,派生自CEdit类, 可实现控制文本框只接受浮点数输入,而不接受非法字符 不当之处,恳请指正~
  • C语言的数据类型有整型、...先学最基本的整型、浮点型和字符。对于学习程序来说,最重要的是动手操作。先编写程序:#include <stdio.h>int main() { int a = 1; printf("a = %d\n", a); float b = 2.2; printf("b =
  • 编写程序,实现一组数的升序排序,分别考虑整数,单精度浮点数字符型数据,字符串数据。要求用重载函数实现。 使用重载函数的好处: 能够减少函数名的数量,避免了太多的函数太多的函数名字,对程序的可读性...
  • 如何实现文本框只能输入浮点数

    千次阅读 2011-07-12 16:48:56
    如何实现文本框只能输入浮点数 重载PreTranslateMessage BOOL CXX::PreTranslateMessage(MSG* pMsg)  {  // TODO: Add your specialized code here and/or call the base class    //设置编辑框可输入...
  • 正则表达式限制文本框只能输入正数、负数、小数等浮点数,网上搜索到的都实现不了,或者过于复杂,研究了一下午,能够实现负号的随意输入,比如正常输入,是先输入负号,再输入数值,这里可以先输入数值,后输入负号...
  • CEdit 输入浮点数设置

    千次阅读 2011-01-21 15:34:00
    MFC中在设置CEdit为Number时 ,不能够接受... 使和输入其它字符时提示保持一致。 该代码是重载 CEdit时,写在Onchar中的。 if((nChar >= '0' && nChar m_nLimitLen) { ShowBalloonTip(m_sTipTitle, m_sTipText, TTI_ERR
  • Android开发 Edittext限制输入浮点数

    千次阅读 2016-04-21 13:46:05
    如果我们开发中需要用到Edittext,并且需要要限制输入的内容。 这时候就需要Edittext的属性: android:numeric=”decimal|integer|signed” /...所以我以输入的是浮点数并且要控制小数位只有1位的来作为实例。首先用ad
  • 输入数字字符串,转换为整数或浮点数 package day02; import java.util.Scanner; /** * Created by lenovo on 2020/12/14. * 输入数字字符串,转换为整数或浮点数 */ public class homework2 { public static ...
  • 判断输入字符串是否为浮点数

    千次阅读 2018-05-06 13:33:00
    浮点数可以由以下的正则表达式确定: white_space_opt [[:space:]]*digit_sequence [[:digit:]]+fractional_constant {digit_sequence}\.?|\.{digit_sequence}|{digit_sequence}\.{digit_sequence}exponent_part...
  • 分别实现了字符串与整型数字之间的转换, 重点烛字符串与浮点数之间的转换
  • 在Java中使用标准输入输出设备进行字符串、整数浮点数等的输入输出操作 在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedReader,Scanner...
  • 3.整数、浮点数转换成字符

    千次阅读 2020-06-25 23:05:09
    在一些应用中,需要将整数、浮点数转换成字符串,用于显示或者通过串口进行发送,常用的做法是使用sprintf函数对数据进行格式化输出,但是这样会导致内存的过量占用,在小容量的51单片机中或者DSP中会占用不小的内存...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,324
精华内容 49,329
关键字:

如何同时输入浮点数和字符