当前位置:   article > 正文

C语言的字符串常用函数(18种)_c语言字符串函数

c语言字符串函数

题目

1.gets()

2. fgets()

3. puts()

4. fputs()

5. sprintf()

6. fprintf()

7. sscanf()

8. atoi(), atol(),atof()

9. strstr

10,strcpy(str1,str2)

11,strncpy(str1,str2,size_t)

12,memset(str,0,5)

13,strcmp(str1,str2)

14,strncmp(str1,str2,size_t)

15,strcat(str,"his is a string")

16,strncat(str,"Bye Bye.", 5);

17,strlwr(字符串)

18,strupr(字符串)


   1.gets()

  1. (1) 头文件
  2. #include <stdio.h>
  3. (2) 函数原型
  4. char *gets(char *s);
  5. (3) 功能
  6. 从标准输入设备读入字符,并保存到指定的内存空间, 直到出现换行符或读到文件结尾为止
  7. (4) 参数
  8. s: 字符串首地址
  9. (5) 返回值
  10. 成功: 返回读入的字符串
  11. 失败: NULL
  12. (6) 和scanf("%s",s);区别
  13. scanf(); 遇到空格,读取结束 (默认以空格分开) ,并且不会做越界检查------这也是, 编译器建议不用scanf的原因 ***
  14. gets(); 允许有空格, 但是也不做越界检查 ***

2. fgets()

  1. (1) 头文件
  2. #include <stdio.h>
  3. (2) 函数原型
  4. char *fgets( char *str, int count, FILE *stream );
  5. char *fgets( char *restrict str, int count, FILE *restrict stream );
  6. (3) 功能
  7. 从给定文件流读取最多 count - 1 个字符并将它们存储于 str 所指向的字符数组。若文件尾出现或发现换行符则终止分析,后一情况下 str 将包含一个换行符。若读入字节且无错误发生,则紧随写入到 str 的最后一个字符后写入空字符。
  8. count 小于 1 则行为未定义。亦不指定是否写入空字符,若 count==1
  9. (4) 参数
  10. str: char 数组元素的指针
  11. count: 的最大字符数(典型的为 str 的长度)
  12. stream: 取数据来源的文件流
  13. (5) 返回值
  14. 成功: 返回字符
  15. 失败或到文件结尾: NULL
  16. (6) 实例
  17. char buf[100];
  18. // 从stdin (代表标准输入,键盘),读取数据
  19. //注意也会把换行符读进去
  20. fgets( buf,sizeof(buf),stdin);

3. puts()

  1. (1) 头文件
  2. #include <stdio.h>
  3. (2) 函数原型
  4. int puts(const char *s);
  5. (3) 功能
  6. 标准设备输出s字符串,完成后自动在屏幕输出一个'\n'
  7. (4) 参数
  8. s: 字符串首地址
  9. (5) 返回值
  10. 成功 : 非负数
  11. 失败 : -1

4. fputs()

  1. (1) 头文件
  2. #include <stdio.h>
  3. (2) 函数原型
  4. int fputs(const char *str,FILE *stream);
  5. (3) 功能
  6. 将str所指定的字符串写入到stream所指定的文件中,字符串'\0'不写入文件中
  7. (4) 参数
  8. str : 字符串
  9. stream : 文件指针, 如果把字符串输出到屏幕上写为stdout
  10. (5) 返回值
  11. 成功 0
  12. 失败 -1
  13. (6) 注意
  14. fputs 是puts的文件版本,但是前者不会自动输出'\n'

用 puts gets 函数只能输出或者输入一个字符串,不能写成

 

5. sprintf()

  1. (1) 头文件
  2. #include <stdio.h>
  3. (2) 函数原型
  4. int sprintf( char *buffer, const char *format, ... );
  5. 例 ,sprintf(buf," " ,a);
  6. (3) 功能
  7. 格式化一个字符串,并把字符串输入到指定数组

格式化字符串, 并把内容输入到指定文件

7. sscanf()

  1. 从数组中按照指定格式提取内容
  2. 例:
  3. //提取整型
  4. char buf[] = "a = 1, b = 2, c = 3";
  5. int a,b,c;
  6. sscanf(buf,"a = %d, b = %d, c = %d",&a,&b,&c);
  7. //提取字符串,默认以空格为分隔 (其他的不可以)

8. atoi(), atol(),atof()

  1. (1) 头文件
  2. #include <stdlib.h>
  3. (2) 函数声明
  4. int atoi( const char *str );
  5. (3) 功能
  6. 扫描str ,跳过前面的空格字符, 知道数字或正负号才开始转换, 直到'\0'才结束转换
  7. (4) 参数
  8. str :需要转换的字符串指针
  9. (5) 返回值
  10. 成功转换后的整数

9. strstr

  1. 1,定义和用法
  2. strchr()函数搜索在字符串中的第一次出现
  3. 该函数时strstr()函数的别名
  4. 2,注释
  5. 该函数时二进制安全的
  6. 该函数是区分大小写的,如需进行不区分大小写的搜索,请使用stristr()函数
  7. 3,语法
  8. strchr(string,search,before_search);
  9. [string]
  10. {
  11. 必需
  12. 规定被搜索的字符串
  13. }
  14. [search]
  15. {
  16. 必需
  17. 规定所搜索的字符串
  18. 如果该参数是数字,则搜索匹配该数字对应的ASCII值的字符
  19. }

10,strcpy(str1,str2)

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';

11,strncpy(str1,str2,size_t)

将字符串str2从头开始复制size_t个字符到str1中,这个库函数会检查str1的容量是否足够长

12,memset(str,0,5)

将str中的5个字符清空替换成0

13,strcmp(str1,str2)

比较str1和str2字符串的ASCII码的大小,会返回>0 、0、 <0中的一种。

如果参加比较的两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为大。例如:computer在字典中位置在compare之后,所以”computer>"compare".但应注意小写字母比大写字母大,所以“DOG"<"cat"

14,strncmp(str1,str2,size_t)

指定str1str2中size_t个元素比较,会返回>0 、0、 <0中的一种。

15,strcat(str,"his is a string")

将字符串拼接到str的后面,不检查str数组的长度

字符数组1必须足够大,以便容纳连接后的新字符串。连接前两个字符串的后面都有\0,连接后只在新字符串最后保留\0

16,strncat(str,"Bye Bye.", 5);

将字符串中的5个长度的字符拼接到str的后面,检查str数组的长度

17,strlwr(字符串)转换为小写的函数

将字符串中大写字母换成小写字母

18,strupr(字符串)转换为大写的函数

将字符串中小写字母换成大写字母

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/71454
推荐阅读
相关标签
  

闽ICP备14008679号