Menu Close

C语言 – 什么是字符串?

字符(char)是容纳单字符的一种基本数据类型。字符和整数没有本质的区别。可以给 char 变量一个字符,也可以给它一个整数;反过来,可以给 int 变量一个整数,也可以给它一个字符。

char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII 码表转换成对应的字符;如果以 %d 输出,那么还是整数。

字符串是多个字符的集合,是一段文本文字,可以将其视为变量的值。 在C语言中,字符串可表示为一些用双引号引起来的字符。

例如:

"This is a string"

C语言中没有字符串类型,只能使用间接的方法来表示。

字符串可以包含任何字符,包括一些特殊控制字符,例如

\n’, ‘\r’, ‘\7’ etc...
"Beep! \7 Newline \n..."

字符串是线性序列中字符的集合。 “ C”始终将字符串视为单个数据,即使它包含空格。 使用单引号表示法定义单个字符。 字符串用双引号表示。

‘C’提供了标准库<string.h>,其中包含许多函数,可用于轻松执行复杂的字符串操作。

声明和初始化字符串

字符串是一个简单数组,其中char为数据类型。 “ C”语言不直接支持将字符串作为数据类型。 因此,要在“ C”中显示字符串,您需要使用一个字符数组。

声明字符串变量的一般语法:

char string_variable_name [array_size];

给字符串赋值

char string_name[string_length] = "string";

字符串数组的大小必须在声明字符串变量时确定,因为要靠它计算在字符串变量中存储多少个字符。

字符串声明示例如下:

char first_name[15]; //declaration of a string variable
char last_name[15];

上面的示例表示声明了两个数组大小为15的字符串变量。这意味着给定的字符数组最多可以容纳15个字符。在 C 语言中,字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

下列程序字符串的赋值方法都是可以的:

char first_name[15] = "ANTHONY";
char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declaration
char string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */
char string2 [ ] = "world"; /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */
char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/

string3最后一个字符必须是 NULL (’\0’),用单引号引用。

例如:

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

赋值后各元素的值为:
数组 C 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。

在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。前面介绍字符串常量时,已说明字符串总是以’\0’作为串的结束符。

因此当把一个字符串存入一个数组时,也把结束符’\0’存入数组,并以此作为该字符串是否结束的标志。

C语言也允许无需定义字符数组的大小而初始化字符串变量。有了’\0’标志后,就不必再用字符数组的长度来判断字符串的长度了。

C语言允许用字符串的方式对数组作初始化赋值。

可以通过以下方式完成:

char first_name[ ] = "NATHAN";

以下是字符串的内存表示:

 

二维字符数组

字符数组也可以是二维或多维数组

例如:

char c[5][10];

即为二维字符数组。

例 1. 复制并打印出二维字符数组

main()
{
   int i,j;
   char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};
   for(i=0;i<=1;i++)
   {
      for(j=0;j<=4;j++)
          printf("%c",a[i][j]);
      printf("\n");
    }
}

 

READ  C语言类型定义符 typedef
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in C语言教程

Related Posts