char arr[] = { 110,111,112,0,123,98,99 }; // nop
    char arr[n] = {110,111,112,110,123,98,99}; // 如果n大于后面元素个数,才会输出正常
    scanf(“%9s”,ch); // 可以通过在scanf里面的%s加一个数字来限制接收字符个数

    1. gets():

    功能:从标输入读入字符,并保存到指定的内存空间,直到出现换行符或读到文件结尾为止
    参数:s:字符串首地址
    返回值:
    成功:读入的字符串
    失败:NULL
    gets(str) 与scanf (“%s”,str)的区别:
    gets(str)允许输入的字符串含有空格
    scanf (“%s”,str)不允许含有空格
    注意:由于scanf()和gets()无法知道字符串s大小,必须遇到换行符或读到文件结尾为止才接收输入,因此容易导致字符数组越界(缓冲区溢出)的情况。
    代码:
    char ch[100];
    //通过键盘获取一个字符串
    gets(ch);
    printf(“%s\n”, ch);
    补充:
    // 通过正则表达式 获取带空格字符串
    scanf(“%[^\n]”, ch); // 接收除\n以外所有的内容

    1. fgets():

    功能:从stream指的文件内读入字符,保存到所指定的内存空间,直到出现换行字符、读到文件结尾或是已读了size - 1个字符为止,最后会自云加上字符”\0’作为字符串结束。
    参数:
    s:字符串
    size:指定最大获取字符串的长度(size-1)
    stream:文件指针,如果读键盘输入的字符串,定写为stdin
    返回值:
    成功:成功读取的字符串
    失败:读到文件尾或出错:NULL
    fgets()在读取一个用户通过键盘输入的字符串的时候,同时把用户输入的回车也做为字符串的一部分。通过scanf和gets输入一个字符串的时候,不包含结尾的“\n”,但通过fgets结尾多了“\n”。fgets()函数是安全的,不存在缓冲区溢出的问题。
    代码:
    char ch[10];
    // “hello\n\0”
    // fgets可以接收空格
    // fgets获取字符串少于元素个数会有\n 大于等于 没有\n
    fgets(ch,sizeof(ch),stdin);
    printf(“%s”, ch);