(1) 头文件
#include
(2) 函数原型
char *gets(char *s);
(3) 功能
从标准输入设备读入字符,并保存到指定的内存空间, 直到出现换行符或读到文件结尾为止
(4) 参数
s: 字符串首地址
(5) 返回值
成功: 返回读入的字符串
失败: NULL
(6) 和scanf("%s",s);区别
scanf(); 遇到空格,读取结束 (默认以空格分开) ,并且不会做越界检查------这也是, 编译器建议不用scanf的原因 ***
gets(); 允许有空格, 但是也不做越界检查 ***
(1) 头文件
#include
(2) 函数原型
char *fgets( char *str, int count, FILE *stream );
char *fgets( char *restrict str, int count, FILE *restrict stream );
(3) 功能
从给定文件流读取最多 count - 1 个字符并将它们存储于 str 所指向的字符数组。若文件尾出现或发现换行符则终止分析,后一情况下 str 将包含一个换行符。若读入字节且无错误发生,则紧随写入到 str 的最后一个字符后写入空字符。
若 count 小于 1 则行为未定义。亦不指定是否写入空字符,若 count==1 。
(4) 参数
str: char 数组元素的指针
count: 的最大字符数(典型的为 str 的长度)
stream: 取数据来源的文件流
(5) 返回值
成功: 返回字符
失败或到文件结尾: NULL
(6) 实例
char buf[100];
// 从stdin (代表标准输入,键盘),读取数据
//注意也会把换行符读进去
fgets( buf,sizeof(buf),stdin);
(1) 头文件
#include
(2) 函数原型
int puts(const char *s);
(3) 功能
标准设备输出s字符串,完成后自动在屏幕输出一个'\n'
(4) 参数
s: 字符串首地址
(5) 返回值
成功 : 非负数
失败 : -1
(1) 头文件
#include
(2) 函数原型
int fputs(const char *str,FILE *stream);
(3) 功能
将str所指定的字符串写入到stream所指定的文件中,字符串'\0'不写入文件中
(4) 参数
str : 字符串
stream : 文件指针, 如果把字符串输出到屏幕上写为stdout
(5) 返回值
成功 0
失败 -1
(6) 注意
fputs 是puts的文件版本,但是前者不会自动输出'\n'
(1) 头文件
#include
(2) 函数原型
int sprintf( char *buffer, const char *format, ... );
例 ,sprintf(buf," " ,a);
(3) 功能
格式化一个字符串,并把字符串输入到指定数组
格式化字符串, 并把内容输入到指定文件
从数组中按照指定格式提取内容
例:
//提取整型
char buf[] = "a = 1, b = 2, c = 3";
int a,b,c;
sscanf(buf,"a = %d, b = %d, c = %d",&a,&b,&c);
//提取字符串,默认以空格为分隔 (其他的不可以)
(1) 头文件
#include
(2) 函数声明
int atoi( const char *str );
(3) 功能
扫描str ,跳过前面的空格字符, 知道数字或正负号才开始转换, 直到'\0'才结束转换
(4) 参数
str :需要转换的字符串指针
(5) 返回值
成功转换后的整数
1,定义和用法
strchr()函数搜索在字符串中的第一次出现
该函数时strstr()函数的别名
2,注释
该函数时二进制安全的
该函数是区分大小写的,如需进行不区分大小写的搜索,请使用stristr()函数
3,语法
strchr(string,search,before_search);
[string]
{
必需
规定被搜索的字符串
}
[search]
{
必需
规定所搜索的字符串
如果该参数是数字,则搜索匹配该数字对应的ASCII值的字符
}
1,将字符str2复制到str1中,这个库函数不会检查str1的容量是否足够长度,因此字符串1的长度必须足够大。
2,字符串1必须写成数组形式,字符串2可以是数组名,也可以是一个字符串常量
3,赋值前对字符串1要初始化
4,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。字符数组名是一个地址常量,他不能改变值,正如数值型数组名不能被赋值一样。如下面两行都是不合法的:
str1="china"; //企图用赋值语句将一个字符串常量直接赋值给一个字符数组。
str1=str2; //企图用赋值语句将一个字符数组直接赋值给另一个字符数组。
只能用strcpy函数将一个字符串复制到另一个字符数组中去。用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。如下面语句就是合法的:
char a[5],c1,c2;
c1='A';c2='B';
a[0]='C';a[1]='h';a[2]='i';a[3]='n';a[4]='a';
将字符串str2从头开始复制size_t个字符到str1中,这个库函数会检查str1的容量是否足够长
将str中的5个字符清空替换成0
比较str1和str2字符串的ASCII码的大小,会返回>0 、0、 <0中的一种。
如果参加比较的两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为大。例如:computer在字典中位置在compare之后,所以”computer>"compare".但应注意小写字母比大写字母大,所以“DOG"<"cat"
指定str1str2中size_t个元素比较,会返回>0 、0、 <0中的一种。
将字符串拼接到str的后面,不检查str数组的长度
字符数组1必须足够大,以便容纳连接后的新字符串。连接前两个字符串的后面都有\0,连接后只在新字符串最后保留\0
将字符串中的5个长度的字符拼接到str的后面,检查str数组的长度
将字符串中大写字母换成小写字母
将字符串中小写字母换成大写字母