iOS基础知识:C语言字符串及常用方法和函数

来源:互联网 发布:js double click 编辑:程序博客网 时间:2024/06/04 18:05

C语言字符串

'a','b','c',这些都是字符,字符都是保存单个的字母

    那么我想保存多个字母怎么办??例:abc

    但是C语言中没有字符串类型

    用数组就可以一个变量保存多个字符

    例:charstr[3] = {'a','b','c'};

    如果要输出全部内容,必须使用for循环,很不方便。

    那么有没有一种简约的方式,让我们一下子就能输出呢?

 

    有!

        但是需要改两个地方!

        1.长度要+1

        2.末尾要加一个'\0'

    然后用 %s就可以输出了!%s输出:字符串的

 字符串:把多个字符连在一起就叫字符串。但是在C语言中要正确正确描述字符串,必须说成:一串以'\0'结尾的字符集合

 

    例:

        char str[3] = {'a','b','c'};

        只能称之为字符数组,因为无法用%s正确输出

 

        char str[4] = {'a','b','c','\0'};

        才能称之为字符串,可以用%s正确输出

     定义字符串语法:

        第一种:

            char 数组名[实际长度+1] ={ 'a','b','c','\0' };

        第二种:

            char str[] = {'a','b','c','\0'};//长度

        第三种:

            char  数组名[实际长度+1] ="字符串";

        例:  char str[4] = "abc";

        注意:不需要加\0,编译器自动帮我们加

         第四种:

            char  数组名[]=  "字符串";

        例: charstr[] = "abc";

 

 

字符串的常用方法和函数:

 

字符串输出:

        printf 加%s 可以输出

        puts(字符串):也可以输出

      区别:1.puts不需要格式化控制符,printf需要

                 2.puts只能输出字符串,printf其他类型都可以输出

                 3.puts自带换行,printf没有自带换行

例如: char str[] ="abc";

    puts(str);

    printf("%s",str);


字符串输入:

        scanf + %s 可以输入

        gets 也可以输入

     区别:1.gets只能输入字符串,scanf什么格式都能输入

                2.gets不用加%s   scanf要加%s

例如: char str[50];

     scanf("%s",str);

 gets(str);

   puts(str);

 

 puts 和 gets都是在stdio.h里面

 字符串其他函数: 都是在string.h头文件


1.strcmp

            语法:strcmp(字符串1,字符串2);

            比较两个字符串谁大谁小。

            是比较字符串1是否比字符串2大,如果比字符串2大,返回正数(差值),如果比字符串2小,返回负数(差值),如果一样返回0

            按照字符串第一个字母进行比较,如果第一个字母不等,那么就直接返回结果

            如果第一个字母相等,那么就继续比较第二个字母,如果第二个字母还相等就继续比较第三个字母,依次类推

           

            主要比较两个字符串是否相等

例如: char str1[] ="abc";

 char str2[] = "adc";

    printf("%d\n",strcmp(str1, str2));//-2

 

2.strcpy

            语法:strcpy(字符数组,字符串2);

            把字符串2的内容,复制到字符数组,如果字符数组里面原来就有内容,就会覆盖

            注意:左边的那个只能传字符数组,不能字符指针

例如:  char str[50] ="abc";

         strcpy(str, "哈哈哈");

         puts(str);

 

3.strcat:

            语法:strcat(字符数组,字符串2);

    把字符串2的内容接道字符数组原实际的内容的后面

例如:  char str[50] ="abc";

    printf("%d  %d\n",str[0],str[1]);

         strcat(str, "哈哈");

    puts(str);//abc哈哈

 

 4.strlen:

            语法:strlen(字符串);

      计算实际字符长度的,'\0'不参与计算,注意:一个中文占3个字节,那么用它计算中文的话,会用中文的实际个数*3

    原理是:计算实际字符串占用的字节数

例如: charstr[50] = "哈哈";

unsigned long len  = strlen(str);

   printf("%lu\n",len);//6

 

0 0
原创粉丝点击