一、strlen

  仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值。

  与sizeof的区别

  strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到'\0'停止。

  char aa[10];cout<<strlen(aa)<<endl; //结果是不定的

  char aa[10]={'\0'}; cout<<strlen(aa)<<endl; //结果为0

  char aa[10]="jun"; cout<<strlen(aa)<<endl; //结果为3

  而sizeof()返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen是函数。

二、gets

  功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
  返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。

注意:本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,为了避免这种情况,我们可以用fgets()来替换gets()。这个事实导致gets函数只适用于玩具程序。在V7的手册(1979年)中说明:为了向后兼容,gets删除换行符,gets并不将换行符存入缓冲区。
三、puts
puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。
puts()函数只能输出字符串,不能数值或进行格式变换。 

转载于:https://www.cnblogs.com/wzlmzy/archive/2012/04/18/2454674.html

C语言中的一些基本函数说明及使用相关推荐

  1. stdio.h头文件中申明的基本函数

    stdio.h头文件中申明的基本函数 调用scanf函数时,需传入变量的地址作为参数,scanf函数会等待标准输入设备(键盘等)输入数据,并且将输入的数据赋值给地址对应的变量. #include< ...

  2. c语言自动取数函数,C语言中取随机数的函数

    匿名用户 1级 2009-08-11 回答 1. 基本函数 在C语言中取随机数所需要的函数是: int rand(void); void srand (unsigned int n); rand()函 ...

  3. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  4. R语言中的数学计算(转载)

    R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...

  5. Linux c语言 creat参数,C++_使用C语言操作文件的基本函数整理,C语言creat()函数:创建文件函 - phpStudy...

    使用C语言操作文件的基本函数整理 C语言creat()函数:创建文件函数 头文件: #include #include #include 定义函数: int creat(const char * pa ...

  6. Java 语言中的函数编程

    Java 语言中的函数编程 利用闭包和高阶函数编写模块化的 Java 代码 如果您从事大型企业项目开发,您就会熟悉编写模块化代码的好处.良构的.模块化的代码更容易编写.调试.理解和重用.Java 开发 ...

  7. [转载]Java 语言中的函数编程

    Java 语言中的函数编程 如果您从事大型企业项目开发,您就会熟悉编写模块化代码的好处.良构的.模块化的代码更容易编写.调试.理解和重用.Java 开发人员的问题是,函数编程范型长期以来只是通过像 H ...

  8. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  9. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

    代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...

  10. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

最新文章

  1. MySQL ERROR 1878 解决办法
  2. hive创建mysql表,hiveMysql创建、修改、删除字段/表
  3. Python学习-基础篇3-函数篇(2)
  4. Gradle 设置 本地maven仓库及发布mavenLocal()路径的方法
  5. easyui from 缓存问题处理
  6. Python学习笔记:Dict和Set
  7. 宋体、文件-Ubuntu Linux中配置adb-by小雨
  8. 用Python的Tultle模块创建一个五角星
  9. 第二个Spring冲刺周期团队进展报告
  10. 每日一例飞鸽传书2012偷偷来袭
  11. 华为p20有没有计算机,用华为P20不知道这三个功能就亏大了!第一个很少人知道!...
  12. Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression Regularization
  13. Android中利用LinearLayout动态添加控件
  14. 写PHP还是Zend好用
  15. 2021年中国人口数量、人口结构现状、男女比例及人口增长情况分析[图]
  16. Metpy_气象物理量计算(相对湿度、露点温度、湿位涡等)
  17. nlp自然语言处理_自然语言处理中的偏见nlp是一个危险但可解决的问题
  18. SAP 后台表查询方法及消息报错定位方法
  19. 【愚公系列】2023年02月 .NET CORE工具案例-Lunar日历转换
  20. 网络三维虚拟展馆开发优势

热门文章

  1. 涿州有没有java_谁说涿州没有方言?
  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试
  3. 阶段3 1.Mybatis_08.动态SQL_02.mybatis中动态sql语句-where标签的使用
  4. 一、 kettle开发、上线常见问题以及防错规范步骤
  5. memcache简单操作
  6. WPF中使用ItemsControl嵌套绑定,在ItemsControl中嵌套一个ItemsControl,然后使用绑定(2)...
  7. java笔记:SpringSecurity应用(二)
  8. java实现kafka发送消息和接收消息(java无注解方式+springBoot注解方式)
  9. jstl有什么优势(简单介绍)
  10. 剑指offer-面试题37:序列化二叉树及二叉树的基本操作和测试