zoukankan      html  css  js  c++  java
  • C语言中的字符串


    在C语言中,把用一对双撇号所括起来的0个或多个字符序列成为字符串常数。字符串并不存放在一个变量中,而是存放在一个字符型数组中。


    1.  char a[] = "123" 和 char b [] ={'1','2','3'}的区别:

        sizeof(a)=4     sizeof(b)=3

    2.  char s[] = "abc";和char* s = "abc";的区别:

        前"abc"储存在内存区域中的栈中,内容可以更改。(字符串变量)

        后者"abc"储存在内存区域中的常量数据区,内容不可更改;(字符串常量)

        存在常量区的内容会缓存起来,下次遇到相同的常量就不会开辟新的存储空间。

        例:char *s1 = “abc”; char *s2 = “abc”;

            s1==s2  (指向相同的地址)

    3. ‘’ 的ASCII码是0

        char a[] =”123”; 等价于 char a[] = {‘1’ ,‘2’ , ‘3’ , 0 };

    4. ‘’ 的作用:

        char name[] = “it”;

        char name2[] = { ‘o’ , ‘k’ };

        printf(“%s”,name2);      //输出为:okit。原因是printf name2[0]开始输出字符直到遇到结束

        int size = strlen(name2);   //size ==4

    5.  利用指针保存字符串数组:

        char*names[3] = {“jack” , “rose” , “taitan” };


    6.  单个汉字在字符串中所占字节:

        编码方式不同会导致单个汉字所占字节数不同。ANSI编码中为2个字节,UTF-8编码中为3个字节。

          可以通过以下实验可以证明:

          新建文本文档,用记事本打开,输入以下代码:

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        int size = strlen("哈ha");
        printf("%d",size);
        return 0;
    }
         文件——另存为——保存类型(所有文件)——文件名(size1.c)——编码(ANSI)——保存。
         在编码选项中可以看到记事本的默认编码方式为 ANSI 。
         文件——另存为——保存类型(所有文件)——文件名(size2.c)——编码(UTF-8)——保存。

        分别编译连接两个文件,然后运行。

        




  • 相关阅读:
    ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
    ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
    路由器原理(一)
    python人工智能——机器学习——机器学习基础
    python人工智能——机器学习——机器学习基础
    python人工智能——机器学习——数据的降维
    python人工智能——机器学习——数据的降维
    python人工智能——机器学习——数据的降维
    Common Subsequence
    Common Subsequence
  • 原文地址:https://www.cnblogs.com/coderkl/p/4320326.html
Copyright © 2011-2022 走看看