输入
gets() 函数 :
1.gets() 从标准输入设备读取字符串,以回车结束读取,使用'\0'结尾,回车符'\n'被舍弃没有遗留在缓冲区。
2.可以用来输入带空格的字符串。
3.可以无限读取,不会判断上限,因此使用gets不安全,可能会造成溢出。
 
fgets() 和 fputs() 函数 :
1.fgets函数的第2个参数指明了读入字符的最大数量.如果该参数是n, 那么fgets会读入n-1 个字符,或者读到第一个换行符为止
2.如果fgets函数读到一个换行符, 会储存在字符串中
3.fgets的第三个参数指明了要读入的文件
4.fputs不在字符串的末尾添加换行符
 
s_gets()函数 :

 char *s_gets(char *st, int n){
char * ret_val;
char *find;
ret_val = fgets(st, n, stdin); if (ret_val){
// while (*st != '\n' && *st != '\0'){
// st++;
// }
find = strchr(st, '\n'); if (*find){
*find = '\0';
} else {
while (getchar() != '\n'){
continue;
}
}
}
return ret_val;
}
 
scanf()函数 : 
scanf() 和 gets() 函数类似 , 也存在一些潜在的缺点 . 如果输入的内容过长 , scanf() 也会导致数据溢出
 
 
输出:
puts()函数 :
使用方法 : 把字符串的地址作为参数传递给它就可以
puts() 会自动添加换行符 , 切必须要有空字符 , 因为只有空字符它才会停止
 
fputs()函数 :
fputs(char *, stdout);
fputs()不会在输出的末尾添加换行符
(puts应和gets配对使用 , fputs与fgets配对使用);
 
自定义输入/输出函数 :
while (string != ‘\0’)
putchar(*string++);
 
字符串函数 :
strlen() : 用于统计字符串的长度
strcat() : 用于拼接字符串 , 函数接受两个字符串作为参数 , 把第2个字符串的备份附加在第1个字符串末尾 , 并把拼接形成的新字符串作为第1个字符串 , 第2个不变
问题 : 无法检查第1 个数组是否能容纳第2个字符串 , 如果分配给第1个数组的空间不够大 , 多出来的字符就会溢出 (可以用strlen()函数 strlen(a) + strlen(b) + 1 <= SIZE)
strncat() : 该函数的第3个参数制定了最大添加字符数 , 如strancat(a, b, 13) 将把b的内容附加给a , 在加到第13个字符或遇到空字符时停止 , 所以a应该足够大 , 以容纳原始字符 + 添加在后面的13个字符 + 末尾的空字符
strcmp() : 比较字符串的内容 , (比较的是字符串 , 不是字符 , 也不是字符串的地址) , 如果两个字符串参数相同 , 就返回0 , 否则返回非零值
strncmp() : 可以限定只比较几个字符
strcpy() : 用来拷贝整个字符串 , strcpy的参数顺序 , 第1个是目标字符 , 第2个是源字符
其他属性 : 第一 , strcpy()返回类型是char * , 该函数返回的是第1个参数的值 , 即一个字符的地址 , 第二 , 第1个参数不必指向数组的开始
char *strchr(const char *s, int c) 
功能:查找字符串s中首次出现c字符的位置
说明:返回首次出现c的位置的指针,返回的地址是被查找的字符串指针开始的第一个与c相同字符的指针,若s中不存在c则返回NULL。。。。
返回值:成功返回要查找的字符第一次出现的位置,否则返回NULL。。。。

C语言 > 字符串和字符串函数的更多相关文章

  1. C语言中返回字符串函数的四种实现方法 2015-05-17 15:00 23人阅读 评论(0) 收藏

    C语言中返回字符串函数的四种实现方法 分类: UNIX/LINUX C/C++ 2010-12-29 02:54 11954人阅读 评论(1) 收藏 举报 语言func存储 有四种方式: 1.使用堆空 ...

  2. C语言中返回字符串函数的四种实现方法

    转自C语言中返回字符串函数的四种实现方法 其实就是要返回一个有效的指针,尾部变量退出后就无效了. 有四种方式: 1.使用堆空间,返回申请的堆地址,注意释放 2.函数参数传递指针,返回该指针 3.返回函 ...

  3. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

  4. R语言中的字符串处理函数

    内容概览   尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串有时候也会在数据分析中占到相当大的份量.   R语言是一个擅长处理数据的语言,但是也不可避免的需要处理一些字符串(文本数据).如何高 ...

  5. 【R笔记】R语言中的字符串处理函数

    内容概览 尽管R是一门以数值向量和矩阵为核心的统计语言,但字符串同样极为重要.从医疗研究数据里的出生日期到文本挖掘的应用,字符串数据在R程序中使用的频率非常高.R语言提供了很多字符串操作函数,本文仅简 ...

  6. 【C语言】10-字符和字符串常用处理函数

    一.字符处理函数 下面介绍的两个字符处理函数都是在stdio.h头文件中声明的. 1.字符输出函数putchar putchar(65); // A putchar('A'); // A int a ...

  7. C语言中关于字符串的一些常用函数

    使用以下时应当在头文件中加入string.h getch()为当你键入任何一个值时,返回但是并不显示,立马编译结束,返回的是asc码  getchar():当你键入回车之后才算是输入结束,并且可以用p ...

  8. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  9. c语言实现常见字符串函数strchr strstr strcmp atoi itoi(字符串换成整数)

    好久没有更新博客了,刚刚出炉练练手的程序如下,很简单,没有考虑过多复杂的东西,有好的想法,欢迎指教: 字符查找函数: char *my_strchr(const char *s,int c) { ch ...

  10. 实现C语言字符串操作的库函数 包括基本的字符串复制 字符串长度 字符串比较等多种函数(C代码)

    头文件 "mystring.h" #ifndef _MYSTR_H #define _MYSTR_H #include <stdio.h> #include <s ...

随机推荐

  1. 2. MariaDB激活二进制日志

    翻译人员: 铁锚 翻译时间: 2013年12月25日 原文地址: Activating the Binary Log 参考了: <高可用MySQL 构建健壮的数据中心> 要启用二进制日志功 ...

  2. (十六)TableView常见属性

    千万不要忘记设置TableView的数据源. 1.分割线的样式: separatorStyle与separatorColor. 颜色:十六进制表示 32bit:argb各占8位. #aarrggbb ...

  3. [面试算法题]有序列表删除节点-leetcode学习之旅(4)

    问题描述 Write a function to delete a node (except the tail) in a singly linked list, given only access ...

  4. Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高!

    Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高! 群英传的最后一章,我大致的看了一下这个例子,发现鸿洋大神也做过,就参考两个人的设计逻辑,感觉都差不多,就这样实现起来了 ...

  5. nodejs书籍

    http://product.dangdang.com/23371791.html#catalog https://www.byvoid.com/project/node http://www.ama ...

  6. OpenCV实现仿射变换

    什么是仿射变换?¶ 一个任意的仿射变换都能表示为 乘以一个矩阵 (线性变换) 接着再 加上一个向量 (平移). 综上所述, 我们能够用仿射变换来表示: 旋转 (线性变换) 平移 (向量加) 缩放操作 ...

  7. Working with DVT Components

      Introduction to ADF Data Visualization Components - Graphs, Gauge, Maps, Pivot Table and Gantt Pur ...

  8. 如何在VS2013中进行Boost单元测试

    对于如何在VS2013中进行Boost单元测试,这方面资料太少.自己也因此走了不少弯路.下文将会阐述一下如何在VS2013中进行Boost单元测试. 在开始Boost单元测试之前,我们需要先安装VS2 ...

  9. android:inputType常用取值

    <EditText android:layout_width="fill_parent" android:layout_height="wrap_content&q ...

  10. SQL Queries and Multi-Org Architecture in Release 12

    In this Document   Abstract   History   Details   Previous Releases   Release 12   Multi-Org Session ...