第18节 C语言之字符串与常见的字符串库函数

来源:互联网 发布:淘宝对比搞笑图片 编辑:程序博客网 时间:2024/06/05 06:39


字符串


1.C语言中的字符串

    C语言中的字符串类型是用来处理文本信息数据的。它是由字母、数字、下划线组成的一串字符。我们把这样的数据类型称之为字符串或串。


2.文本数据

   2.1 字符串类型常量  " 引起来的内容就是字符串常量"

   例子:

    "6222 0202 0000 3518997" 中国工商银行卡19位

    "955888 0200 005433378" 中国工商银行 理财金卡

    "0200 0981 0100 0351899X" 活期存折账号20位

    "I  LOVE YOU!!"

    "A0b9D6e3"


    2.2 字符串类型变量


        2.2.1 字符数组(特殊 '\0')

                  用一个以\0结尾的字符数组来表示字符串这个数据类型。

        

         声明一个字符串类型的变量


         char name[20] = "瑞哥";

         char no[256] = "6222 0102 0300 3518997";

         char admin[20] = "admin";

         char password[20] = "admin";


         char string[20] = "";

         char str[20] = {0};


          注意:"="给字符数组初始化的时候,只能赋值一次,如果我想再次修改name的值,就不能再使用"="赋值了。


        即 name = "拿破仑";//错误的

         必须借助<string.h>字符串的库函数,strcpy()来赋值。

     

         2.2.2 字符指针

         char *string = "瑞哥";

         string = "rui_gege";//正确的


3.常见的字符串的库函数 

     <string.h>中如果是单独只判断是

    字符的函数 <ctype.h>中(测试字符的库函数)


3.1 strlen();

      函数原型:int strlen(char *s);

                       extern int strlen(char * s);

      函数参数:char *s 表示是一个字符串。

      函数返回值:int 就是返回一个整型的值。strlen计算的是字符串中字符的真实个数(不含\0)。

      函数作用:就是计算字符串的长度,或测试字符串是否是空串。如果是空串 strlen();结果为0。


3.2 strcpy();

      函数原型:char *strcpy(char *s,const char *s1);

      函数参数:2个 第一个是一个字符串(目),第二个源字符串。

      函数返回值:char * 返回字符串,目标字符串

      函数作用:复制字符串,常用于字符串的赋值。


     strncpy();

     函数原型:char *strncpy(char *s,const char*s1,int n);

     函数参数:2个 第一个是一个字符串(目),第二个源字符串。参数3 指定字符个数

      函数返回值:char * 返回字符串,目标字符串

      函数作用:复制指定字符个数的字符串,常用于字符串的赋值。


3.3 字符串的输入和输出

      3.3.1 输入 gets();

                         fgets();

                函数原型:char * gets(char *str);

                参数:字符串

                返回值:指向该字符串的字符指针。


      3.3.2 输出 puts();

                函数原型:int puts(const char *s);


3.4 字符串的拼接和分割

      strcat();

      函数原型:char * strcat(char *s,const char*s1);

      参数:1.拼接以后的字符串  2.要拼接的字符串

      返回值:char * 指向拼接完毕以后的字符串

      作用:拼接字符串用 I LOVE YOU!


      strtok();

      函数原型:char *strtok(char *s,const char* s1);


3.5 字符串比较

      strcmp();

      函数原型:int strcmp(char *s,const char*s1);

      参数:要比较的两个字符串

      返回值:int 整数


                   0   表示两个字符串相等

                   1   表示字符串1 >字符串2

                  -1   串1<串2


补充:

atoi 函数

            作用:把字符串类型(文本类型的整数)转换成int整型的值。

        char strnum[20] = "100";//这样的100不能参与运算,atoi()函数,从字符串转成整型。

               atol 函数  atof函数,字符串类型小数转成double类型的小数。


             strtok()字符串的分割

             strstr() 字符串的查找 在主串中找子串

             strchr() 在主串中找某一个字符第一次出现的位置



4.字符串数组 

    4.1 二维数组表示字符串数组

          char name[5][20] = {"盖伦","赵信","皇子","凯南","蛮子"};

         输出字符串

         for(i=0;i<5;i++)

        {

          printf("%s\n",name[i]);

        }


例子:使用字符串比较函数,字符串数组,写一个程序,你初始化数组为"关羽","张飞","赵云","马超","黄忠",你输入一个人名判断是不是五虎上将。


    4.2 字符指针数组(字符数组)

          char *name[5] = {"一","二","三","四","五"};

    注意:就是如果是中文字符不能用' '输出,必须当成字符串去处理。


5.认识主函数

1.main()

2.int main()

3.int main(void)  项目中

4.int main(int ,char**);

5.int main(int argc,char *argv[]);//带参数 1.个数  2.参数值

6.int main(int argc,char **argv);

7.int main(int argc,const char*argv);

8.void main(void);


0 0