首页 > 其他分享 >c中字符串常见操作函数

c中字符串常见操作函数

时间:2022-12-19 21:25:52浏览次数:35  
标签:const 函数 dest 常见 char -- str 字符串

字符串处理函数:   #include <string.h>

    字符串拷贝:

        strcpy:

            将 src 的内容,拷贝给 dest。 返回 dest。 保证dest空间足够大。【不安全】

            char *strcpy(char *dest, const char *src);

            函数调用结束 返回值和 dest参数结果一致。

        strncpy:

            将 src 的内容,拷贝给 dest。只拷贝 n 个字节。 通常 n 与dest对应的空间一致。

            默认 不添加 ‘\0’

            char *strncpy(char *dest, const char *src, size_t n);    

            特性: n > src: 只拷贝 src 的大小

                   n < src: 只拷贝 n 字节大小。 不添加 ‘\0’

    字符串拼接:

        strcat:

            将 src 的内容,拼接到 dest 后。 返回拼接后的字符串。    保证 dest 空间足够大。

            char *strcat(char *dest, const char *src);

        strncat:

            将 src 的前 n 个字符,拼接到 dest 后。 形成一个新的字符串。保证 dest 空间足够大。

            char *strncat(char *dest, const char *src, size_t n);

            函数调用结束 返回值和 dest 参数结果一致。


    字符串比较:    不能使用 > < >= <= == !=

        strcmp:

            比较s1和s2两个字符串,如果相等 返回0.如果不相等,进一步表 s1 和 s2 对应位 ASCII码值。

            s1 > s2 返回1

            s1 < s2 返回-1

            int strcmp(const char *s1, const char *s2);

        strncmp:

            int strncmp(const char *s1, const char *s2, size_t n);

            比较s1和s2两个字符串的前n个字符,

            如果相等 返回0。如果不相等,进一步表 s1 和 s2 对应位 ASCII码值。(不比字符串ASCII码的和)

            s1 > s2 返回1

            s1 < s2 返回-1
            


    字符串格式化输入、输出:

        sprintf():  s -- string
 
            int sprintf(char *str, const char *format, ...);

            对应printf,将原来写到屏幕的“格式化字符串”,写到 参数1 str中。

            printf("%d+%d=%d\n", 10, 24, 10+24);

            ---》
            char str[100];

            sprintf(str, "%d+%d=%d\n", 10, 24, 10+24);  格式串写入str数组中。

        sscanf():

            int sscanf(const char *str, const char *format, ...);

            对应scanf, 将原来从屏幕获取的“格式化字符串”, 从 参数1 str中 获取。

            scanf("%d+%d=%d", &a, &b, &c);

            ---》

            char str[]= "10+24=45";

            sscanf(str, "%d+%d=%d", &a, &b, &c);  a --> 10, b --> 24, c --> 45
            

    字符串查找字符、子串:

        strchr():

            在字符串str中 找一个字符出现的位置。 返回字符在字符串中的地址。

            char *strchr(const char *s, int c);

            printf("%s\n" strchr("hehehahahoho", 'a'));  --> "ahahoho"

        strrchr():

            自右向左,在字符串str中 找一个字符出现的位置。 返回字符在字符串中的地址。

            char *strrchr(const char *s, int c);

            printf("%s\n" strrchr("hehehahahoho", 'a'));  --> "ahoho"

        strstr():

            在字符串str中,找子串substr第一次出现的位置。返回地址。

            char *strstr(const char *str, const char *substr);

            在字符串中找子串的位置。

            printf("%s\n" strrchr("hehehahahoho", "ho"));  --> "hoho"

            printf("%s\n" strrchr("hehehahahoho", "xixi"));  --> NULL

scanf("%s", str);

scanf("%[^\n]", str);

    字符串分割:

        strtok(): 按照既定的分割符,来拆分字符串。“www.baidu.com”  --> "www\0baidu.com"

        char *strtok(char *str, const char *delim);

            参1: 待拆分字符串

            参2: 分割符组成的“分割串”

        返回:字符串拆分后的首地址。 “拆分”:将分割字符用 '\0'替换。

    特性:
        1)strtok拆分字符串是直接在 原串 上操作,所以要求参1必须,可读可写(char *str = "www.baidu.com" 不行!!!)

        2)第一次拆分,参1 传待拆分的原串。    第1+ 次拆分时,参1传 NULL

atoi/atof/atol:
        
        使用这类函数进行转换,要求,原串必须是可转换的字符串。

        错误使用:"abc123" --> 0;    "12abc345" ---> 12;  "123xyz" -->123
         
        atoi:字符串 转 整数。

        int atoi(const char *nptr);

        atof:字符串 转 浮点数

        atol:字符串 转 长整数

标签:const,函数,dest,常见,char,--,str,字符串
From: https://www.cnblogs.com/qiyuancc/p/16993071.html

相关文章

  • MySQL函数
    MySQL函数1.常用函数--======常用函数======--数学运算SELECTABS(-8)--绝对值SELECTCEILING(9.4)--向上取整SELECTFLOOR(9.4)--向上取整SELECTRAND(......
  • Angular 模块封装概念常见的错误理解
    Angular以类似于ES模块的方式引入了模块封装的概念。它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。例如,如果我尝试使用下面......
  • [LeetCode]008-字符串转换整数(atoi)
    >>>传送门题目请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数 myAtoi(strings)的算法如下:读......
  • 一文了解 Go 标准库 math 和 rand 的常用函数
    耐心和持久胜过激烈和狂热。哈喽大家好,我是陈明勇,今天分享的内容是在Go标准库math和rand的常用函数。如果本文对你有帮助,不妨点个赞,如果你是Go语言初学者,不妨点个关......
  • 剑指offer 字符串的排列(C++)
    题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:......
  • HighGUI视频读写函数
    HighGUI视频读写函数CvCapture视频获取结构typedefstructCvCaptureCvCapture;结构CvCapture没有公共接口,它只能被用来作为视频获取函数的一个参数。cvCreateFileCaptur......
  • C语言——函数指针
    转载自:https://www.jianshu.com/p/f1cf2aa531d9前言初学C语言的童鞋,通常在学完函数和指针的知识后,已经是萌萌哒,学习到了函数指针(请注意不是函数和指针),更是整个人都不好......
  • 散列函数之冲突处理之开地址法
    开地址法基本思想:当关键码key的哈希地址H0=hash(key)出现冲突时,以H0为基础,产生另一个哈希地址H1,如果H1仍然冲突,再以H0为基础,产生另一个哈希地址H2,…,直到找出一个不冲......
  • Windows共享内存以及相关函数的使用
        程序与程序之间、进程与进程之间、线程与线程之间进行数据交互与共享的方法是决定一个程序运行效率与速度的关键。方法1:共享内存函数 CreateFileMappingHANDLE......
  • 虚函数与纯虚函数之我见
    1.基本概念:纯虚函数:是一种特殊的虚函数。对于虚函数,在必须给出其定义(否则编译无法通过),而对于纯虚函数可以不给出有意义的实现(注:可以给出其定义)。纯虚函数是在基类中声明的......