c语言 字符数组,c++ 字符串数组,C语言字符串数组详解

c语言 字符数组,c++ 字符串数组,C语言字符串数组详解

本文主要介绍C语言中字符串数组的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容。有需要的朋友可以参考一下。

C语言字符串数组

字符串是一个连续的字符序列,以空字符' \0 '作为终止符。字符串的长度是指所有字符的数量,不包括终止符。C语言中没有字符串类型,自然也就没有以字符串为操作数的运算符。

字符串存储在元素类型为char或宽字符类型(宽字符类型指wchar_t、char16_t或char32_t)的数组中。由宽字符组成的字符串也称为宽字符串。

C标准库提供了大量的函数,可以对字符串进行基本的操作,比如字符串比较、复制、串联等。除了这些传统的字符串函数,C11还增加了这些函数的“安全”版本,可以确保字符串操作不会超出数组的界限。

您可以使用字符串来初始化任何字符类型数组。例如,以下两个数组的定义是等效的:

char str1[30]='走吧';//字符串长度:8;数组长度:30

char str1[30]={ 'L ',' e ',' t ',' \ '',' s ',' ',' g ',' \ 0 ' };

存储字符串的数组必须比字符串长度长一个元素,以容纳下一个字符串终止符(空字符' \0 ')。因此,str1数组可以存储的最大字符串长度是29。如果定义长度为8而不是30的数组,将会出现错误,因为它不能包含字符串终止符。

如果在定义字符数组时没有显式指定它的长度,而是使用字符串文字来初始化它,则数组的长度将比字符串的长度多1。如下所示:

char str2[]='到伦敦!';//字符串长度:11(注意开头的空格);

//数组长度:12

以下语句使用标准函数strcat()将字符串str2追加到字符串str 1(str 1数组的长度必须足够大,以容纳所有连接的字符)。

#包含字符串. h

char str1[30]='走吧';

char str2[ ]='到伦敦!';

/* .*/

strcat( str1,str 2);

看跌期权(str 1);

调用puts()后,输出新的str1数组内容:

我们去伦敦吧!

str1和str2的名字实际上是两个指针,分别指向各自数组的第一个字符。这种指针被称为指向字符串的指针,或简称为字符串指针。

字符串处理函数(如scrcat()和puts())需要接收字符串的起始地址,并将其作为参数。这种函数通常一个字符一个字符地处理字符串,直到遇到结束符' \0 '。

示例1是函数strcat()的另一个——种可能的实现。它使用从函数参数传入的指针来遍历整个字符串。[例1]函数strcat()

//函数strcat()复制第二个字符串并将其追加到第一个字符串的末尾。

//参数:指向两个字符串的指针

//返回值:指向第一个字符串的指针,此时第二个字符串已经连接到它的尾部。

char *strcat( char * restrict s1,const char * restrict s2)

{

char * rtnPtr=s1

while ( *s1!='\0') //找到字符串s1的结尾

S1;

while (( *s1=*s2)!='\0') //用s1的终止符替换s2的第一个字符

返回rtnPtr

}

从s1地址开始的char数组,其长度至少为两个字符串长度之和加1,以容纳字符串终止符。在调用strcat()之前,可以使用标准函数strlen()进行测试,确保长度没有问题。函数strlen()返回其字符串参数的长度,如下所示:

if(sizeof(str 1)=(strlen(str 1)strlen(str 2)1))

strcat( str1,str 2);

宽字符串文字以L、U或U为前缀,它们是宽字符串的符号。因此,wchar_t数组的初始化过程如下:

#include stddef.h //定义wchart_t类型

/* .*/

wchar_t晚餐[]=L '杂碎';//字符串长度:10;

//数组长度:11;

//数组空间大小:11 * sizeof(wchar_t)

本文关于C语言字符串数组的详细讲解到此为止。关于C语言字符串数组的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: