zoukankan      html  css  js  c++  java
  • C语言之随机数和字符串输入输出

    一、随机数产生函数

      1、需要加入头文件 #include<stdlib.h> 和 #include<time.h>

      2、Rand是伪随机数产生器,每次调用rand产生的随机数是一样的。

      3、如果调用rand之前先调用srand就可以出现任意的随机数。

      4、只要能保证每次调用srand函数的时候,参数的值是不同的,那么rand函数就一定会产生不同的随机数。

      5、实例:

    int main(void)
    {
        int t = (int)time(NULL);
        srand(t); //随机数种子 
        int i;
        for(i=0;i<10;i++)
        {
            printf("%d
    ",rand()); //产生随机数(每次运行都会产生不同的随机数) 
        }
        return 0;
    }

     

    二、字符串输入与输出函数

      1、scanf函数

        char a[100] = {0};

        scanf("%s",a); //表示输入一个字符串,scanf是以回车键或空格作为输入完成标识的,但回车键本身并不会作为字符串的一部分。

        注意:如果scanf参数中的数组长度小于用户在键盘输入的长度,那么scanf就会缓冲区溢出,导致程序崩溃。

        例如:

    #include<stdio.h>
    int main(void)
    {
        char s[10] = {0};
        scanf("%s",s);
        int i;
        for(i=0;i<10;i++)
        {
            printf("%d",s[i]);
        }
        printf("%s
    ",s);
        return 0;
    }

      2、gets()函数的使用

        1、gets() 输入,不能只用类似“%s”或者“%d”或者之类的字符转义,只能接收字符串的输入。

        2、实例:

    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        char s[100] = {0};
        gets(s); // 输入:hello world ,gets()函数同样是获取用户输入,它将获取的字符串放入s中,仅把回车键视为结束标志 ,但也有溢出问题 
        printf("-------
    ");
        printf("%s
    ",s); // 输出:hello world 
         
        return 0;
    }

      3、gets()获取用户输入,atoi() 函数将字符串转为数字 ,头文件中加入 #include<stdlib.h> 

    #include<stdio.h>
    #include<stdlib.h>
    int main(void)
    {
        char a[100] = {0};
        char b[100] = {0};
        gets(a); // 获取第一次输入,a的对象只能是数组 ,不能转义(字符串转为数字),需要 使用专门的函数 
        gets(b);
        int i1 = atoi(a); // 将字符串转化为一个整数 
        int i2 = atoi(b);
        printf("%d
    ",i1+i2);
            
        return 0;
    }

      4、fgets()函数用法--gets()函数的升级版

    #include<stdio.h>
    #include<stdlib.h>
    int main(void) 
    {
        char c[10] = {0};
        fgets(c,sizeof(c),stdin);//第一个参数是char的数组,第二个参数是数组的大小,单位字节,第三个参数代表标准输入。
        // 输入: hello world 
        printf("%s
    ",c);// 输出:hello wor --> 它把字符串尾的 0 也包括在内了,fgets()会自动截断,防止溢出,所以很安全
        // 调用fgets()的时候,只要能保证第二个参数小于数组的实际大小,就可以避免缓冲区溢出的问题。 
        return 0;
        }

      5、puts()函数,将用户的输入原样打印出来

    #include<stdio.h>
    #include<stdlib.h>
    int main(void) 
        {
        char d[100] = {0};
        gets(d);
        printf("------
    ");
        puts(d);  //自动输出,附带换行 
        return 0 ;
        }

      6、fputs()函数,是puts的文件操作版

    #include<stdio.h>
    #include<stdlib.h>
    int main(void) 
        {
        char e[100] = {0};
        fgets(e,sizeof(e),stdin); // hello world mylove
        printf("----------
    ");
        fputs(e,stdout);  // hello world mylove
        return 0;
        }
  • 相关阅读:
    jq:翻页时,保存上页多选框checkbox选中状态
    SpringMVC日期类型转换问题处理方法归纳
    SpringMVC的Date与String互转
    使用AJAX异步提交表单的几种方式
    ORACLE——日期时间格式化参数详解 之三
    ORACLE——日期时间格式化参数详解 之一
    ORACLE——日期时间格式化参数详解 之二
    Json-lib 进行java与json字符串转换之二
    Json-lib 进行java与json字符串转换之一
    java继承-子类调用父类的方法中包含子类重写的方法
  • 原文地址:https://www.cnblogs.com/schut/p/8552082.html
Copyright © 2011-2022 走看看