c++ 字符串数组,C++ 字符数组

  c++ 字符串数组,C++ 字符数组

  用来存储字符数量的数组称为字符数组。一个字符串可以看作一个数组,它的元素是字符型的。

  字符数组的定义

  形式与前面介绍的数值数组相同。例如:

  char c[10];

  因为字符型和整型比较常见,所以也可以定义为int c[10],但此时每个数组元素占用2个字节的内存单元。

  字符也可以是二维或多维数组。例如:

  char c[5][10];

  即二维字符数组。

  字符数组的初始化

  字符还允许在定义时进行初始化赋值。例如:

  char c[10]={c , , p , r , o , g , r , a , m };

  赋值后每个元素的值为:

  c[0]的值是 c

  c[1]的值是“”

  c[2]的值是‘p’

  c[3]的值是“r”

  c[4]的值是“0”

  c[5]的值是‘g’

  c[6]的值是 r

  c[7]的值是‘a’

  c[8]的值是 m

  其中c[9]未赋值,值为 p 的系统自动赋值为0。当所有元素都给定初始值时,长度描述也可以省略。例如:

  char c[]={c , , p , r , o , g , r , a , m };

  此时,C数组的长度自动设置为9。

  对字符数组的引用

  # include stdio . h # include stdlib . h int main(void){ inti,j;chara[][5]={ { H , e , l , l , },{ w , o , r , l , d } }for(I=0;I I){ for(j=0;j j ) printf(%c ,a[I][j]);printf( \ n );}系统(暂停);return0}

  运行结果:

  因为本例中二维字符数组的所有元素在初始化时都被赋予了初始值,所以一维下标的长度可以省略。

  和字符串结束标志。

  C语言中没有特殊的字符串变量。通常,字符数组用于存储字符串。在前面介绍字符串常量时,已经解释过字符串总是使用 \0 作为字符串的结尾。因此,当字符串存储在数组中时,终止符 \0 也存储在数组中,用作字符串结束的标志。有了 \0 标志,就不再需要根据字符数组的长度来判断字符串的长度。

  c语言允许以字符串的形式初始化数组赋值。例如:

  char c[]={c ,, p , r , o , g , r , a , m };

  可以写成:

  char c[]={C程序 };

  或者去掉{},写成:

  char c[]=C程序;

  按字符串赋值比按字符逐个赋值要多一个字节,用来存放字符串结束标志 \0 。上述数组C在内存中的实际存储量为:

  “0”是由C编译系统自动添加的。因为采用了 \ 0 标志,所以用字符串赋值初始值时一般不需要指定数组的长度,系统会自己处理。

  字符数组的输入和输出

  使用字符串模式后,字符数组的输入输出会变得简单方便。除了上述给字符串赋初值的方法,还可以使用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,而不是使用循环语句逐个输入输出每个字符。

  # include stdio . h # include stdlib . h int main(void){ charc[]= Hello \ n world ;printf(%s\n ,c);系统(“暂停”);return0}

  运行结果:

  注意,在这个例子的printf函数中,使用的格式字符串是" %s ",这表明输出是一个字符串。而在输出表列中给出数组名即可。无法写为:printf(%s ,c[]);

  # include stdio . h # include stdlib . h int main(void){ charst[15];Printf(输入一个字符串:\ n );scanf(%s ,ST);printf(%s\n ,ST);系统(“暂停”);return0}

  运行结果:

  在本例中,由于数组长度被定义为15,输入字符串长度必须小于15,这样就可以保留一个字节来存储字符串结束标志“\ 0”。需要注意的是,对于一个字符数组,如果没有进行初始化赋值,就必须声明数组长度。还应该注意,当用scanf函数输入一个字符串时,该字符串不能包含空格,否则,空格将被用作字符串的终止符。

  从输出结果可以看出,空格后的字符没有输出。为了避免这种情况,可以设置几个字符数组来存储分段中带有空格的字符串。

  在C语言中,数组名表示数组的第一个地址。整个数组是从第一个地址开始的连续内存单元。如果有一个字符数组char c[10],可以如图所示在内存中表示。

  设数组C的第一个地址是2000,也就是说单元c[0]的地址是2000。数组名c代表第一个地址。所以不能在c之前加地址运算符,写scanf(%s )是错误的。函数printf(%s ,C)执行时,通过数组名C找到第一个地址,然后逐个输出数组中的每个字符,直到遇到字符串标志 \0 结束。

  字符串处理功能

  c语言提供了丰富的字符串处理函数,大致可以分为字符串输入、输出、合并、修改、比较、转换、复制和搜索。使用这些函数可以大大减轻编程的负担。用于输入和输出的字符串函数在使用前应包含头文件“stdio.h”,而其他字符串函数应包含头文件“string.h”。

  以下是一些最常用的字符串函数。

  字符串输出函数将

  格式:puts(字符数组名)

  功能:将字符数组中的字符串输出到显示器。也就是说,字符串显示在屏幕上。

  # include stdio . h # include stdlib . h int main(void){ charc[]= Hello world!\ n ;卖出期权(c);系统(“暂停”);return0}

  运行结果:

  从程序中可以看出,puts函数中可以使用转义字符,所以输出结果变成两行。puts函数可以完全由printf函数代替。当需要以某种格式输出时,通常使用printf函数。

  字符串输入函数获取

  格式:获取(字符数组名)

  功能:从标准输入设备的键盘输入一个字符串。

  这个函数获取一个函数值,它是字符数组的第一个地址。

  # include stdio . h # include stdlib . h int main(void){ charst[15];Printf(输入一个字符串:\ n );gets(ST);看跌期权(ST);系统(“暂停”);return0}

  运行结果:

  当输入字符串包含空格时,输出仍然是所有字符串。说明gets函数不使用空格作为字符串输入的结束符号,只使用回车作为输入。这不同于scanf功能。

  字符串连接函数strcat

  格式:strcat(字符数组名1,字符数组名2)

  作用:将字符数组2中的字符串连接到字符数组1中的字符串后面,删除字符串1后面的字符串标记“\0”。这个函数的返回值是字符数组1的第一个地址。

  # include stdio . h # include stdlib . h int main(void){ static charst 1[30]=我的名字是;int st2[10];Printf(输入您的姓名:\ n );获取(st2);strcat(st1,st2);卖出(st1);系统(“暂停”);return0}

  运行结果:

  这个程序将初始化赋值的字符数组和动态赋值的字符串连接起来。注意字符数组1要定义足够的长度,否则不能加载所有连接的字符串。

  复制字符串函数strcpy

  格式:strcpy(字符数组名1,字符数组名2)

  函数:将字符数组2中的字符串复制到字符数组1中。结束符号“\0”也被复制。几个字符2,或者一个字符串常量。这相当于将一个字符串赋给一个字符数组。

  # include stdio . h # include stdlib . h int main(void){ charst 1[15],st2[]=Hello World!;strcpy(st1,st2);卖出(st1);printf( \ n );系统(“暂停”);return0}

  这个函数要求字符数组1要有足够的长度,否则不能加载所有复制的字符串。

  字符串比较函数strcmp

  格式:strcmp(字符数组名1,字符数组名2)

  函数:按照ASCII码顺序比较两个数组中的字符串,通过函数的返回值返回比较结果。

  字符串1=字符串2,返回值=0;

  字符串2 >字符串2,返回值> 0;

  字符串1 <字符串2,返回值<0。

  这个函数也可以用来比较两个字符串常量,或者用字符串常量比较数组。

  #包含stdio.h

  #包含stdlib.h

  int main(void){ intk;staticcharst1[15],st2[]=Hello World!;Printf(输入一个字符串:\ n );gets(st1);k=strcmp(st1,st2);if(k==0)printf( st1=st2 \ n );if(k 0)printf( st1 st2 \ n );if(k 0)printf( st1 st2 \ n );系统(“暂停”);return0}

  在这个程序中,将输入的字符串与数组st2中的字符串进行比较,将比较结果返回给K,然后根据K的值输出结果提示字符串,当输入为dbase时,从ASCII码可以知道“dBASE”大于“C语言”,所以k > 0,输出结果为“st1 st2”。

  # include stdio . h # include stdlib . h int main(void){ intk;staticcharst[]=你好,世界!;k=strlen(ST);Printf(字符串的长度是:%d\n ,k);系统(“暂停”);return0}

  字符串长度测量函数strlen

  格式:strlen(字符数组名)

  函数:测量字符串的实际长度(不包括字符串结束标志 \ 0 ),并以函数形式返回值。

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

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: