栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言中的字符串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言中的字符串

字符串的概念
(1)字符串是有序字符的集合
(2)字符串是程序中的基本元素之一
(3)C语言中没有字符串的概念
C语言中通过特殊的字符数组模拟字符串
C语言中的字符串是以**’’**结尾的字符数组

字符数组与字符串
字符串存储于只读存储区,程序运行过程中不能被改变
在C语言中,双引号引用的单个或多个字符是一种特殊的字面量
存储于程序的全局只读存储区
本质为字符数组,编译器自动在结尾加上’’字符

char ca[] = {'H','e','l','l','o'};  //字符数组
char ca[] = {'H','e','l','l','o,'''};  //字符串
char ss[] = "Hello world";  //字符串
char* str = "Hello world";  //字符串

如果一个字符串没有’’,它将退化为字符数组

#include 

int main()
{
    char ca[] = {'H', 'e', 'l', 'l', 'o'};
    char sa[] = {'W', 'o', 'r', 'l', 'd', ''};
    char ss[] = "Hello world!";
    char* str = "Hello world!";
    
    printf("%sn", ca);	//ca为字符数组,打印将出错
    printf("%sn", sa);
    printf("%sn", ss);
    printf("%sn", str);
    
    return 0;
}

秘密:
(1)字符串字面量的本质是一个数组,无名数组
(2)字符串字面量可以看做常量指针
(3)字符串字面量中的字符不可改变(因为存储于程序的全局只读存储区)
(4)字符串字面量至少包含一个字符(空字符串即只有’’) ‘’’’ 空字符串

下面的表达式正确吗?

char b = "abc"[0];    //字符数组的第一个元素
char c = *("123" + 1);  //字符数组加1,指向第二个元素
char t = *"";        //打印空字符串,0

printf("%c",b);  //a
printf("%c",c);  //2
printf("%d",t);  //0。''的ascii码值是0

printf("%s","hello");
printf("%p","hello");  //打印字符串的地址

字符串的长度
所有的字符串长度只依赖于第一个出现的’’
字符串相关函数都依赖于结束符’’
(1)字符串的长度就是字符串所包含字符的个数
(2)字符串的长度指的是第一个’’字符前出现的字符个数
(3)通过’’结束符来确定字符串的长度
(4)通过strlen用于返回字符串的长度

#include 
#include 

int main()
{
    char s[] = "HelloWord";
    int i = 0;

    for(i = 0; i < sizeof(s)/sizeof(char); i++)
    {
        printf("%cn",s[i]);  //打印字符数组
    }

    printf("%sn",s);        //s字符串仅仅代表Hello,而不是HelloWord
    printf("%dn",strlen(s));    //5,字符串长度,以第一个''为结束符
    printf("%dn",strlen("123"));  //3

    return 0;
}

空格表示‘’
s代表字符数组,包含的元素为HelloWord
s代表字符串,包含的元素为Hello

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号