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

    1、字符串的概念

      字符串是有序字符的集合 

      字符串是程序中的基本元素之一 

     C语言中没有字符串的概念 

         - C语言中通过特殊的字符数组模拟字符串 

         - C语言中的字符串是以 '' 结尾的字符数组

    2、字符数组与字符串 

    在C语言中,双引号引用的单个或多个字符是一种特殊的字面量 

                  -存储于程序的全局只读存储区 

                  -本质为字符数组,编译器自动在结尾加上''字符 

    下面那些是字符串的定义?

      

    1    char ca[] = {'H''e''l''l''o'};  //普通字符数组
    2     char sa[] = {'W''o''r''l''d'''};  //存储于全局只读存储区的结尾的字符数组 - 字符串
    3     char ss[] = "Hello world!";  //存储于全局只读存储区的结尾的字符数组 - 字符串
    4     char* str = "Hello world!";  //存储于全局只读存储区的结尾的字符数组 - 字符串

    对于ca的打印会出现不期望的内容(没有以字符串打印,一直往后打印)

    4、鲜为人知的小秘密 

    你知道吗? 

                   -字符串字面量的本质是—个数组 

                   -字符串字面量可以看作指针常量

                   -字符串字面量中的字符不可改变 

                   -字符串字面量至少包含—个字符() 

    5、字符串字面量 

      "Hello World ! "是—个无名的字符数组 

    下面的表达式正确吗?

    1     char b = "abc"[0];  
    2     char c = *("123" + 1);  
    3     char t = *"";  

    6、实例分析 

    字符串字面量的本质     30-2.c

     1 #include <stdio.h>  
     2   
     3 int main()  
     4 {  
     5     char b = "abc"[0];  
     6     char c = *("123" + 1);  
     7     char t = *"";  
     8       
     9     printf("%c
    ", b);  
    10     printf("%c
    ", c);  
    11     printf("%d
    ", t);  //对应的ascii为0
    12       
    13     printf("%s
    ""Hello");  
    14     printf("%p
    ""World");  
    15       
    16     return 0;  
    17 }  

    7、字符串的长度

      字符串的长度就是字符串所包含字符的个数 

      字符串长度指的是第—个''字符前出现的字符个数 

      通过''结束符来确定字符串的长度 

      函数strlen用于返回字符串的长度

    8、编程实验 

    strlen的使用     30-3.c 

     1 #include <stdio.h>  
     2 #include <string.h>  
     3   
     4 int main()  
     5 {  
     6     char s[] = "Helloworld";  //sizeof(s) = 11 需要加上最后编译器加上的
     7     int i = 0;  
     8       
     9     for(i=0; i<sizeof(s)/sizeof(char); i++)  
    10     {  
    11         printf("%c
    ", s[i]);  //h e l l o  w o r l d 
    12     }  
    13       
    14     printf("%s
    ", s);  //Hello
    15   
    16     printf( "%d
    ", strlen(s) );  //5
    17     printf( "%d
    ", strlen("123") );  //3
    18    
    19       
    20     return 0;  
    21 }  

    9、小结

                C语言中通过字符数组模拟字符串 

                C语言中的字符串使用''作为结束符 

                字符串字面量的本质为字符数组 

                字符串相关函数都依赖于结束符''

  • 相关阅读:
    JavaScript继承详解 转
    Chinese Consumer and Websites
    【转载】C#防SQL注入过滤危险字符信息
    记一次在数据库中查询:“包含”或者“仅包含”某些商品的订单的方法
    IE 6 position: relative + li 问题
    【转】c# 位操作
    基于asp.net MVC的无刷新文件上传
    C++ 类继承内存布局
    美杜杉 主动防御最新版
    [转]COM 连接点
  • 原文地址:https://www.cnblogs.com/lemaden/p/10128051.html
Copyright © 2011-2022 走看看