c语言字符串

时间:2022-08-16 00:23:33

一. 从用户读取字符串方式:

1.scanf():在遇到字符串中的空格,"tab",回车键时都会认为字符串输入结束了

2.gets():在遇到字符串中的回车键时,才会认为字符串结束了,然后停止获取字符串,自动在字符串末尾添加"\0"字符

字符串结束标志:“\0”,是一个转义字符,经常被称为空值,它的ASCLL码为0.


二.字符串赋值

1.列如:char arr1[9]={"Welcome!"};

            char arr2[9];

            arr1=arr2;

  不能完成赋值,因为arr1和arr2都代指一个地址,而且地址都是常量,常量是无法完成赋值的。使用专门的函数来完成:

  头文件<string.h>:char *strcpy(char *dest,char *src), 将从src地址开始的字符串复制到dest地址开始的储存空间

                                char *strdup(char *s),将从s地址开始的字符串复制到动态申请的储存空间

三.字符串拼接

1.char *p1="super";

   char *p2="market";

   char *p3=p1+p2;

   错误,头文件<string.h>库函数:

            char *strcat(char *dest,char *src),将src指向的字符串复制到dest地址开始的字符串的结尾处, 

            char *strncat(char *dest,char *src,int n),将src指向的字符串的前n个字符,复制到dest地址开始的字符串的结尾处

四.字符串修改

 <string.h>:

            char *strset(char *s,char c),将s指向的字符串中的所有字符都设置成字符c

            char *strnset(char *s,char n,int n),将s指向的字符串中的前n个字符都设置成字符c

五.字符串比较

 <string.h>:

            int strcmp(char *s1,char *s2),比较s1与s2指向的字符串大小

            int stricmp(char *s1,char *s2),比较s1与s2指向的字符串大小,不区分大小写

            int strcmp(char *s1,char *s2),比较s1与s2指向的字符串的前n个字符的大小

            int stricmp(char *s1,char *s2),比较s1与s2指向的字符串的前n个字符的大小,不区分大小写


            一个整形的数,s1<s2时返值<0,s1=s2时返值=0,s1>s2时返值>0,

六.字符串大小写转换

  <string.h>:

                char *strlwr(char *s),统一指向的字符串中字母字符为小写

                 char *strupr(char *s),统一指向的字符串中字母字符为大写

七.计算字符串中字符的个数

    <string.h>:

                int strlen(char *s),统计s指向的字符串中字符的个数

八.倒叙字符串

    <string.h>:

                char *strrev(char *s)

九.定位字符串中指定字符

                char *strchr(char *s,char c).第一次出现位置

                char *sstrcchr(char *s,char c),最后一次出现位置

                没有找到返回空指针

十.定位字符串中指定的字符串

                char *strstr(char *s1,char *s2),第一次出现位置,没有找到返回空指针 


十一.字符串的输入输出

                    puts(s),C语言中的输出函数,其中s为字符串

                    gets( )函数用于输入字符串

getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)。例如:在输入“12”回车后,“1”首先被读入,“2”和回车还在输入缓冲区里,被后面的getchar()依次读入