码迷,mamicode.com
首页 > 编程语言 > 详细

C语言-字符串

时间:2018-12-16 23:26:18      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:c语言   字符串长度   基本   std   编程   字符串   有序   span   color   

1、字符串的概念

  字符串是有序字符的集合 

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

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

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

     - C语言中的字符串是以 ‘\0‘ 结尾的字符数组

 

2、字符数组与字符串 

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

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

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

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

  

1    char ca[] = {Hello};  //普通字符数组
2     char sa[] = {World\0};  //存储于全局只读存储区的\0结尾的字符数组 - 字符串
3     char ss[] = "Hello world!";  //存储于全局只读存储区的\0结尾的字符数组 - 字符串
4     char* str = "Hello world!";  //存储于全局只读存储区的\0结尾的字符数组 - 字符串

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

4、鲜为人知的小秘密 

你知道吗? 

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

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

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

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

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\n", b);  
10     printf("%c\n", c);  
11     printf("%d\n", t);  //\0对应的ascii为0
12       
13     printf("%s\n""Hello");  
14     printf("%p\n""World");  
15       
16     return 0;  
17 }  

7、字符串的长度

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

  字符串长度指的是第—个‘\0‘字符前出现的字符个数 

  通过‘\0‘结束符来确定字符串的长度 

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

 

8、编程实验 

strlen的使用     30-3.c 

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

9、小结

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

            C语言中的字符串使用‘\0‘作为结束符 

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

            字符串相关函数都依赖于结束符‘\0‘

C语言-字符串

标签:c语言   字符串长度   基本   std   编程   字符串   有序   span   color   

原文地址:https://www.cnblogs.com/lemaden/p/10128051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!