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

字符串与字符数组

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

字符串与字符数组

有时候会把字符数组当成字符串,其实字符串是一个新的概念,字符串不是字符数组。
接下来我来介绍字符串是什么

字符串定义:

以{ }形式定义

  • 字符数组:char word[ ] = {‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};
  • 字符串:char word[ ] = {‘H’,‘e’,‘l’,‘l’,‘o’,‘!’,‘’};
  • 字符串的输入输出:用%s(字符串);%c(单个字符)
    scanf读入一个单词(到空格、tap或回车为止)

注意:

  1. 字符串都是有’’的, 以0(整数0)结尾的一串字符
    0或''是一样的,但是和’0’不同
    0标志字符串的结束,但他不是字符串的一部分
    计算字符串长度的时候不包含这个0
  2. 字符串以数组的形式存在,以数组或指针的形式访问
    更多的是以指针的形式(数组和指针有着某种关联,在《指针C语言》里有介绍)
    string.h里有很多处理字符串的函数
字符串变量

字符串也可以用两个" "来定义;" "之间的就是字符串

  • char *str = “Hello”; <==> 指针字符串
  • char word[ ] = “Hello”; <==> 数组字符串
  • char line[10] = “Hello”; <==> 数组字符串

这样定义更方便、简介;而且编译器会自动帮你在数组里加上'';字符串都是有''结尾的,就像上面说的它不属于字符串长度。

  • 就拿char word[ ] = “Hello”; 为例:字符串长度为5,而数组长度是6,因为还有结尾的'',感觉是不是比用{ }定义好很多。
  • char word[ ] = {‘H’,‘e’,‘l’,‘l’,‘o’,‘!’,‘’}; <==> char word[ ] = “Hello”;
字符串常量(字面量)

两个相邻的字符串常量会被自动连接起来 “或者633”“599结束”<==>“或者633599结束”

  • 指针字符串:char* s = “Hello,world!”; s是指针,它指向一个字符串常量,常量所在的地方不接受修改。
  • 如果需要修改字符串,应用数组字符串:char s[ ] = “Hello,world!”;

  • 从地址上看:s与s2它俩指向一个同字符串常量,常量所在的地方不接受修改。
  • 从字符串上看:s2与s3都输出了字符串'Hello',但只有s3可以修改,因为s3是创造出来的一个字符串,而s与s2都是指向本身就存在的一个字符串常量,这种常量不接收修改。
  • 同时可看出数组也可输出地址和指针相似(数组变量是特殊的指针)

推荐:

  • 如果要构造一个字符串——>数组字符串
  • 如果要处理一个字符串——>指针字符串
字符串数组
  • 字符串数组:char **a <==> a是一个指针,指向另一个指针,那个指针指向一个字符(串)
  • char a[ ][ ](得给出明确的列)<==> 二维数组
  • char *a[ ] = { "holle","world","li" } <==> 好多指针a[0]指向"hello" a[1]指向"world" a[2]指向"li"
字符串函数

有许多适用于字符串的函数;运用需要有头文件#include
字符串函数:#include

  • strcpy(s1, s2); <==> 复制字符串 s2 到字符串 s1。
  • strcat(s1, s2); <==> 连接字符串 s2 到字符串 s1 的末尾。
  • strlen(s1); <==> 返回字符串 s1 的长度。
    strcmp(s1, s2); <==> 如果 s1 和 s2 是相同的,则返回 0;如果 s1- 如果 s1>s2 则返回大于 0。
  • strchr(s1, ch); <==> 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
  • strstr(s1, s2); <==> 返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/836771.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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