• C++ char类型函数


    1.0 字符串复制

    1.1 strcpy() 完全复制

    原型:char* strcpy(char* dest, char* src);
    功能:把从src地址开始且含有 ‘’结束符的字符串复制到以dest开始的地址空间
    返回指向dest的指针
    说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串

    1 int main()
    2 {
    3     char src[]="abcde";
    4     char dest[100];
    5     strcpy(dest,src);
    6     printf("%s",dest);
    7     //输出>> abcde 
    8 }

    1.2 strncpy() 部分复制

    原型: char* strncpy(char* dest, char* src, int size_tn);
    功能:将字符串src中最多n个字符复制到字符数组dest中(ta并不像strcpy一样遇到NULL才停止复制,而是等凑够n个字符才开始复制),返回指向dest的指针
    说明:如果n > dest串长度,dest栈空间溢出产生崩溃异常

    • src串长度 <= dest串长度

    如果n=(0, src串长度),src的前n个字符复制到dest中

    但是由于没有NULL字符,所以直接访问dest串会发生栈溢出的异常情况

    这时,一般建议采取memset将dest的全部元素用null填充

    • 如果n = src串长度,与strcpy一致
    • 如果n = dest串长度,[0,src串长度]处存放于desk字串,(src串长度, dest串长度]处存放NULL
    • src串长度 > dest串长度
    • 如果n = dest串长度,则dest串没有NULL字符,会导致输出会有乱码
     1 int main()
     2 {
     3     char src[]="SWT is so great! We should % him everyday.";
     4     char dest[100];
     5 
     6     memset(dest,0,sizeof(dest));
     7     strncpy(dest,src,10);
     8     printf("%s
    ",dest);
     9     //输出>>SWT is so 
    10 
    11     memset(dest,0,sizeof(dest));
    12     strncpy(dest,src,sizeof(src));
    13     printf("%s
    ",dest);
    14     //输出>>SWT is so great! We should % him everyday.
    15 
    16     memset(dest,0,sizeof(dest));
    17     strncpy(dest,src,sizeof(dest));
    18     printf("%s
    ",dest);
    19     //输出>>SWT is so great! We should % him everyday.
    20 
    21     char des[10];
    22     memset(des,0,sizeof(des));
    23     strncpy(des,src,sizeof(src));
    24     printf("%s
    ",des);
    25     //exe停止工作 
    26 }

    2.0 字符串合并

    2.1 strcat() 完全合并

    原型: char* strcat(char* dest, char* src);
    功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的 ‘’)并添加 ‘’
    返回指向dest的指针
    说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串

    1 int main()
    2 {
    3     char src[]="OI!";
    4     char dest[]="We like ";
    5     strcat(dest,src);
    6     printf("%s",dest);
    7     //输出>>We like OI! 
    8 }

    2.2 strncat() 部分合并

    原型: char* strncat(char* dest, char* src, int n);
    功能:把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的 ‘’)并添加 ‘’
    返回指向dest的指针
    说明: src 和 dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串

    1 int main()
    2 {
    3     char src[]="Please login in here!#$%@$@%@#$@%";
    4     char dest[]="Welcome to the largest talking room of SLYZ! ";
    5     strncat(dest,src,21);
    6     printf("%s",dest);
    7     //输出>>Welcome to the largest talking room of SLYZ! Please login in here! 
    8 }

    3.0 字符串查找

    3.1 strchr() 查找字符

    原型: char* strchr(char* s, char c);
    功能: 查找字符串s中首次出现字符c的位置
    说明: 返回首次出现c的位置的指针,如果s中不存在c则返回NULL

    1 int main()
    2 {
    3     char src[]="Can you find some thing?";
    4     int t=strchr(src,'?')-src;
    5     printf("%d",t);
    6     //输出>>23
    7 } 

    3.2 strchr() 查找字符串

    原型: char* strstr(char* haystack, char* needle);
    功能: 从字符串haystack中寻找needle第一次出现的位置(不比较结束符””)
    说明: 返回指向第一次出现needle位置的指针,如果没找到则返回NULL

    1 int main()
    2 {
    3     char src[]="Can you find some thing?";
    4     int t=strstr(src,"thing")-src;
    5     printf("%d",t);
    6     //输出>>18
    7 }

    4.0 字符串比较

    4.1 strcmp() 区分大小写

    原型: int strcmp(char* s1, char* s2);
    功能: 比较字符串s1和s2,区分大小写
    说明: 当s1 < s2时,返回值<0;
        当s1 = s2时,返回值=0;
        当s1 > s2时,返回值>0。

    1 int main()
    2 {
    3     char src[]="Hello!";
    4     char dest[]="hello!";
    5     if (!strcmp(src,dest)) printf("SAME");
    6     else printf("DIFFERENT");
    7     //输出>>DIFFERENT 
    8 }

    4.2 stricmp() 不区分字母的大小写

    原型: int stricmp(char* s1, char* s2);
    功能: 比较字符串s1和s2,但不区分字母的大小写
    说明: 当s1 < s2时,返回值<0;
        当s1 = s2时,返回值=0;
        当s1 > s2时,返回值>0。

    1 int main()
    2 {
    3     char src[]="Hello!";
    4     char dest[]="hello!";
    5     if (!stricmp(src,dest)) printf("SAME");
    6     else printf("DIFFERENT");
    7     //输出>>SAME
    8 }

    4.3 strncmp() 部分比较,区分字母的大小写

    原型: int strncmp(char* s1, char* s2, int n);
    功能: 比较字符串s1和s2的前n个字符
    说明: 当s1 < s2时,返回值<0;
        当s1 = s2时,返回值=0;
        当s1 > s2时,返回值>0。

    1 int main()
    2 {
    3     char src[]="A APPLE A DAY.";
    4     char dest[]="a apple a day.";
    5     if (strncmp(src,dest,8)==0) printf("SAME");
    6     else printf("DIFFERENT");
    7     //输出>>DIFFERENT 
    8 } 

    4.4 strnicmp() 部分比较,不区分字母的大小写

    原型: int strnicmp(char* s1, char* s2, int n);
    功能: 比较字符串s1和s2的前n个字符但不区分大小写
    说明: 当s1 < s2时,返回值<0;
        当s1 = s2时,返回值=0;
        当s1 > s2时,返回值>0。

    1 int main()
    2 {
    3     char src[]="A APPLE A DAY.";
    4     char dest[]="a apple a day.";
    5     if (strnicmp(src,dest,8)==0) printf("SAME");
    6     else printf("DIFFERENT");
    7     //输出>>SAME 
    8 } 

    5.0 字符串转化

    5.1 strupr() 小写转大写

    原型: char* strupr(char* s);
    功能: 将字符串s转换为大写形式
    说明: 只转换s中出现的小写字母,不改变其它字符
    返回指向s的指针

    1 int main()
    2 {
    3     char s[]="Let's % SWT together!";
    4     strupr(s);
    5     printf("%s",s);
    6     //输出>>LET'S % SWT TOGETHER!
    7 }

    5.2 strlwr() 大写转小写

    原型: char* strlwr(char* s);
    功能: 将字符串s转换为小写形式
    说明: 只转换s中出现的大写字母,不改变其它字符
    返回指向s的指针

    1 int main()
    2 {
    3     char s[]="Let's % SWT together!";
    4     strlwr(s);
    5     printf("%s",s);
    6     //输出>>let's % swt together!
    7 }

    5.3 strrev() 字符串倒置

    原型: char* strrev(char* s);
    功能: 把字符串s的所有字符的顺序颠倒过来(不包括空字符””)
    说明: 返回指向颠倒顺序后的字符串指针

    1 int main()
    2 {
    3     char s[]="!uoy kcor lliw eW";
    4     strrev(s);
    5     printf("%s",s);
    6     //输出>>We will rock you!
    7 }

    5.4 strset() 字符设置

    原型: char* strset(char* s, char c);
    功能: 把字符串s中的所有字符都设置成字符c
    说明: 返回指向s的指针

    1 int main()
    2 {
    3     char s[]="(!@&*#$^*@#&^(!@#*))";
    4     strset(s,'%');
    5     printf("%s",s);
    6     //输出>>%%%%%%%%%%%%%%%%%%%%
    7 }

    参考链接:https://blog.csdn.net/wu_tongtong/article/details/79004668

  • 相关阅读:
    Selenium断言的使用,等待
    Selenium的鼠标事件,键盘事件
    json,HTTP协议
    HTML,js的基础知识
    Selenium3详解:元素定位方法
    Python操纵Excel,数据库
    Spring拦截器(权限的管理)
    完成登陆功能
    配置使用sitemesh
    Hibernate+pager-taglib实现分页功能
  • 原文地址:https://www.cnblogs.com/john1015/p/13141226.html
Copyright © 2020-2023  润新知