美文网首页
常用数据类型(三)

常用数据类型(三)

作者: qianranow | 来源:发表于2018-04-20 09:32 被阅读39次

    字符串


    • 概念:用来存储 多个 有序 字符,其实就是 数组
    • 定义
      // 位于 双引号 中,在内存中以 \0 结束
      
      1. char name[] = "秦子阳";
      
      2. char nameOne[] = {'l', 'u', 'c', 'k', '\0'} ;
      
      3. // \0 对应 ASCII 0
         char nameTwo[] = {'l', 'u', 'c', 'k', 0};
          
         char nameThree[9] = {'l', 'u', 'c', 'k'};
      
      4. 字符串数组
         char names[2][10] = {"wxx", "qtt"};
      
         char namesOne[2][10] = {{'w', 'x', 'x', '\0'}, {'q', 't', 't', '\0'}};
      
    • 操作
      • 输出
        // %s,从传入的 地址 开始逐个取出元素,直到遇到 \0 位置
        char name[] = {'l', 'u', 'c', 'k', '\0'};
        char nameOne[] = {'w', 'x', 'x'};
        printf("nameOne = %s\n", nameOne);
        
      • 计算字符串你长度
        /*
         语法:strlen(const char *__s)
         参数:__s,字符串
         返回值:字符串长度,unsigned long 类型
         */
        #include <string.h>
        char str[] = "cool";
        size_t length = strlen(str);
        printf("%lu\n", length );
        
      • 拼接字符串
        /*
         作用:将 源字符串中的字符 拼接到 目标字符串 中
         语法:strncat(char *s1, const char *s2, size_t n)
         参数:s1,目标字符串;s2,源字符串;n,需要拼接字符个数
         返回值:拼接之后字符串
         */
        #include <string.h>
        char str1[7] = "luck";
        char str2[10] = "cool";
        size_t length = sizeof(str1) / sizeof(str1[0]) - strlen(str1) - 1;
        strncat(str1, str2, length);
        printf("%s\n", str1);
        
      • 拷贝字符串
        /*
         作用:将 源字符串中的字符 拷贝到 目标字符串 中;
              覆盖目标字符串中原有的字符
         语法:strncpy(char *dst, const char *src, size_t n)
         参数:dst,目标字符串;src,源字符串;n,需要拷贝字符个数
         返回值:拷贝之后字符串
         */
        char str1[] = "wonderful";
        char str2[] = "accelerate";
        size_t length = sizeof(str1) / sizeof(str1[0]) - 1;
        strncpy(str1, str2, length);
        printf("%s\n", str1);
        
      • 比较字符串
        /*
         作用:对传入的字符串进行比较, 比较完毕之后会返回一个整型的值
         语法:strcmp(const char *__s1, const char *__s2);
         参数:__s1,比较字符串;__s2,比较字符串;
         返回值:比较结果,int 类型
         注意:如果返回值小于 0,则 __s1 < __s2;
              如果返回值等于 0,则 __s1 == __s2;
              如果返回值大于 0,则 __s1 > __s2;
         */
        char str1[] = "aac";
        char str2[] = "abc";
        // 取出字符串中的每一个字符进行逐个比较,如果发现不相等就不会继续往下比较
        int res = strcmp(str1, str2);
        printf("%i\n", res);
        

    相关文章

      网友评论

          本文标题:常用数据类型(三)

          本文链接:https://www.haomeiwen.com/subject/qpxakftx.html