C字符串函数归总
来源:互联网 发布:python数据类型 编辑:程序博客网 时间:2024/06/07 00:24
头文件<string.h>
①返回得到字符串大小:strlen ( ) 函数
②拼接字符串函数:strcat ( ) 函数 和 strncat ( ) 函数
1. char* strcat (char* target , char* source) 返回target
2. char* strncat (char* target , char* source , size_t size) 返回target
两个函数都是把source拼接到target后面,其中strncat函数,在加到size个字符或者遇到空字符的时候停止
③比较字符串函数:strcmp ( ) 函数 和 strncmp ( ) 函数
1.int strcmp (char* ch1 , char* ch2)
2.int strncmp (char* ch1 , char* ch2 , size_t size)
两个函数都是,如果两个字符串相同则返回0,否则返回非零值。其中strncmp()函数只比较前size个字符是否相同,而strcmp ( )则比较整个字符串
④拷贝字符串函数:strcpy ( )函数和 strcnpy ( ) 函数
1.char* strcpy (char* target , char* source) 返回target
target不一定要指向数组的开始 ,这使得可以只拷贝数组的一部分
char ch[20] ;strcpy (ch + 7 , "Hi , looo") ;// 这样只拷贝给了数组的一部分
2.char* strncpy (char* target , char* source , size_t size) 返回target
更加谨慎的选择
只拷贝了source字符串里面前size个给target
⑤写入字符串函数:sprintf ( ) 函数和snprintf ( )函数
1. int sprintf (char* target , “format” , data)
2. int snprintf (char* target , size_t size , “format” , data)
例子:
char target[20] ;int integer = 1009 ;double test = 10.001 ;sprintf (mid , "%d%lf" , integer , test) ;// 这之后,target字符串为:“100910.001”
返回值:写入的个数,同printf()函数
⑥字符查找函数:
1)在字符串中查找某个字符:strchr( )函数与strrchr( )函数
1. char* strchr (const char* source , int c)
如果找到,则返回c字符在source字符串里面首次出现的位置,否则返回空指针
例子:
#include <stdio.h>#include <string.h>int main () { char test[100] = {"I love my girlfrined very much!"} ; char* ptr1 = strchr (test , 'm') ; char* ptr2 = strchr (test , '9') ; printf ("test + 7 : %p\nptr1 : %p\nptr2 : %p\n" , test + 7 , ptr1 , ptr2) ; printf ("test[7]: %c\n*ptr1: %c\n" , test[7] , *ptr1) ; return 0 ;}
这里‘m’字符在字符串里出现了两次,‘9’字符则未出现过
比较输出可以看出,ptr1和test[7]的地址一样,可见,它是指向了第一次出现的地方。而ptr2则为空,因为‘9’未在source字符串里面出现过
2.char* strrchr (const char* s , int c)
如果在s中找到c字符,则返回c字符最后一次出现的位置,否则返回空指针
例子:
#include <stdio.h>#include <string.h>int main () { char test[100] = {"I love my girlfrined very much!"} ; char* ptr1 = strrchr (test , 'm') ; char* ptr2 = strrchr (test , '9') ; printf ("test + 26 : %p\nptr1 : %p\nptr2 : %p\n" , test + 26 , ptr1 , ptr2) ; printf ("test[26]: %c\n*ptr1: %c\n" , test[26] , *ptr1) ; return 0 ;}
这里,‘m’最后一次出现是在test[26],而‘9’未出现过
可见,ptr1的地址和test[26]相同,ptr2则为空
2)查找字符串中的另外一个字符串:strpbrk ( )函数和strstr( ) 函数
1.char* strpbrk (char* s1 , char* s2)
如果s1字符串里包含s2字符串中的任意字符,则返回s1字符串里第一个相同字符的位置,否则返回空指针
#include <stdio.h>#include <string.h>int main () { char test[100] = {"I love my girlfrined very much!"} ; char test1[100] = {"lome"} ; char test2[100] = {"12345"} ; char* ptr1 = strpbrk (test , test1) ; char* ptr2 = strpbrk (test , test2) ; printf ("test + 2 : %p\nptr1 : %p\nptr2 : %p\n" , test + 2 , ptr1 , ptr2) ; printf ("test[2]: %c\n*ptr1: %c\n" , test[2] , *ptr1) ; return 0 ;}
可见,test和test1第一个相同字符是‘l’,而和test2则没有相同字符
可见,ptr1指向了第一个相同字符‘l’在test里的位置,而ptr2则为空
2.char* strstr (const char* s1 , const char* s2)
返回s1字符串里面s2字符串第一次出现的位置,如果在s1中没有找到s2,则返回空指针
例子:
#include <stdio.h>#include <string.h>int main () { char test[100] = {"I love my girlfrined very much!"} ; char* ptr1 = strstr (test , "love") ; char* ptr2 = strstr (test , "hhhhh") ; printf ("test + 2 : %p\nptr1 : %p\nptr2 : %p\n" , test + 2 , ptr1 , ptr2) ; return 0 ;}
可见,“love”字符串在test里面出现的首位置是在test[2]处,而“hhhhh”则未在test里面
可见,ptr1的地址和test[2]的地址一样,而ptr2则为空指针
头文件<ctype.h>
判断函数:
1. isalnum( )函数:判断是否是字母或数字
2. isalpha( )函数:判断是否是字母
3. isblank( )函数:判断是否是空白符(空格,水平制表符,换行符)以及任何其他本地化指定为空白的字符
4. isspace( )函数:判断是否为空白字符(空格,换行符,换页符,回车符,垂直制表符,水平制表符或其他本地化定义的字符)
5. isdigit( )函数:判断是否为数字字符
6. isxdigit( )函数:判断是否为十六进制数字符
7. isgraph( )函数:判断是否为除空格 外任何可打印字符
8. isprint( )函数:判断是否为可打印字符
9. ispunct( )函数:判断是否为标点符号
10. iscntrl( )函数:判断是否为控制字符,比如Ctrl+B
11. islower( )函数:判断是否是小写字母
12. isupper( )函数:判断是否是大写字母
(注意是isupper不是issupper)
转换函数:
1. tolower( )函数:
如果是大写字母,则返回小写字母,否则返回原始参数
2. toupper( )函数:
如果是小写字母,则返回大写字母,否则返回原始参数
0 0
- C字符串函数归总
- 【C语言】 字符串操作函数及内存拷贝函数归总
- 其他_函数归总
- C -- 字符串和字符串函数
- c++(字符串处理函数)
- C语言字符串函数
- C语言字符串函数
- c字符串函数源码
- c 字符串转换函数
- C字符串处理函数
- C字符串函数
- C字符串处理函数
- C字符串函数总汇
- C语言字符串函数
- C语言字符串函数
- C语言字符串函数
- C 字符串函数
- C字符串操作函数
- 指针和数组,const int *,sizeof,优先级等的一些坑
- Java中的数据类型
- 基础知识(一)
- 快速排序
- 单链表(合并单链表)
- C字符串函数归总
- SpringMVC
- 商品展示案例
- L0、L1与L2范数各自功能
- 回溯-子集问题
- 数据库 用sql语句创建表
- 安装Visual studio注意事项
- 编码:隐匿在计算机背后的语言(1-3章)
- 【计算机原理】并发 并行 异步 同步 阻塞 非阻塞