举例如下:
char a[10];
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如
char a[10];
a[10]="hello";
这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10];
strcpy(a, "hello");
易错情况:
1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。
C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。直接尝试对字符串进行复制或比较操作会失败。例如,假定str1和str2有如下声明:
char str1[10], str2[10];
利用=运算符来把字符串复制到字符数组中是不可能的:
str1 = "abc"; /*** WRONG ***/
str2 = str1; /*** WRONG ***/
C语言把这些语句解释为一个指针与另一个指针之间的(非法的)赋值运算。但是,使用=初始化字符数组是合法的:
char str1[10] = "abc";
这是因为在声明中,=不是赋值运算符。
试图使用关系运算符或判等运算符来比较字符串是合法的,但不会产生预期的结果:
if (str1==str2) ... /*** WRONG ***/
这条语句把str1和str2作为指针来进行比较,而不是比较两个数组的内容。因为str1和str2有不同的地址,所以表达式str1 == str2的值一定为0。
(http://blog.csdn.net/jphaoren/article/details/5803583)
相关推荐
### C语言字符数组初始化详解 #### 一、字符数组的定义与初始化 在C语言中,字符数组是一种非常重要的数据结构,主要用于存储一系列字符。字符数组的定义与初始化是掌握其使用的基础。以下是对字符数组定义及初始...
"C语言字符数组初始化" 在C语言中,字符数组的初始化是非常重要的,以下是关于字符数组初始化的知识点: 1. 字符数组的定义与初始化 字符数组的初始化可以通过逐个字符赋给数组元素来实现,例如:`char str[10]={...
在C语言中,字符串是一种特殊的字符数组,它们以空字符'\0'作为结束标识。本文主要探讨了C语言中字符数组的定义、初始化以及字符串的表示形式。 首先,字符数组的定义与初始化是通过声明一个字符类型(char)的数组来...
字符数组的定义、使用、初始化和赋值是理解C语言字符串处理的关键。 1. **字符数组的定义**: 定义字符数组的方式与其他数组相同,例如`char line[1000];`声明了一个能存储1000个字符的数组,但通常用于存储字符串...
"Matlab 数组赋值的多种方法" Matlab 作为一款功能强大的科学计算软件,对数组的操作是其核心功能之一。数组赋值是 Matlab 中最基本的操作之一,对于数组的赋值有多种方法,本文将详细介绍 Matlab 数组赋值的多种...
本文档主要介绍了 C 语言数组的实验心得,包括一维数组和二维数组的定义、赋值和输入输出的方法,字符数组和字符串函数的使用,以及与数组有关的算法特别是排序算法。通过实验和实践,掌握了数组的使用方法,并对...
- 在C语言中,字符数组赋值需要使用花括号包围字符,例如`char x[1] = {'a'}`,而不是`char x[1] = 'a'`。 - 自动变量(char x[1])不能在定义时直接初始化,应使用花括号包围初值,如`auto char x[1] = {'0'}`。 -...
本实验报告的主要目的是让学生掌握C语言中的一维和二维数组的定义、赋值和输入输出,字符数组和字符串数组的使用,以及与数组有关的排序算法。 一、数组的定义和赋值 在C语言中,数组是一种数据结构,用于存储一组...
在编程领域,一维字符数组是基础且重要的数据结构,特别是在C/C++等语言中。它是一种线性存储结构,可以看作是字符类型的数组,用于存放一系列的字符。本项目"一维字符数组.zip"可能是一个教学示例或者代码实践,...
C语言字符数组与字符串的使用详解 C语言中,字符数组和字符串是两个紧密相关的概念。字符数组是指由多个字符组成的数组,而字符串则是指一个以`\0`结尾的字符序列。在C语言中,字符串可以看作是一个特殊的字符数组...
数组元素可以是整数、浮点数、字符等,数组名是用来标识数组的唯一标识符。数组的声明方式为:数据类型 数组名[常量表达式];其中,常量表达式指定了数组的长度。 一维数组的定义 一维数组是最基本的数组类型,它...
9. 字符数组的赋值: 使用`strcpy()`函数可以将一个字符串的内容复制到另一个字符串数组中。 10. 字符数组的边界问题: 在使用字符数组处理字符串时,需要注意数组的边界和溢出问题,确保不会读取或写入超出数组...
【C语言指针与字符串字符数组】 在C语言中,指针和字符串是密不可分的概念,它们在处理字符数据时发挥着重要作用。本部分主要讲解了如何利用指针操作字符串,以及字符数组与字符串之间的关系。 首先,C语言通过...
对于字符数组,初始化字符串时需要注意末尾的空字符`\0`,例如`char str[6] = {'C', 'h', 'i', 'n', 'a', '\0'}`。 4. **实际应用示例**: - 求多个数的最大值:可以定义一个数组存储这些数,通过循环比较找到最大...
* 掌握字符数组与字符串的使用方法,理解字符数组与其他数组的区别,理解字符串及其特点。 二、实验目的: * 掌握数组的基本概念和使用方法。 * 掌握字符数组与字符串的使用方法。 * 掌握与数组相关的算法,包括...
* 对字符数组的操作:连接、复制、比较 五、实践作业 * 作业1:从键盘输入20个数到m数组,将下标为0、2、4……的元素赋值给数组n,输出n中的内容。 * 作业2:产生10个[50,90]上的随机整数,求其中能被5整除的数的...