C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。 字符型与整型互相通用,因此 int c[10] 也可以定义字符数组。但由于两种类型分配字节不同, 用整型来定义会浪费空间, 另外这样定义实际意义也不大, 只是为了说明其合法性。
初始化:
最简单的方法即逐个赋值: char c[10]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'}; 10个字符分别赋绐c[0]到c[9]10个元素。
如果初值个数小于数组长度,则只将这些字符赋绐数组中前面的元素,其余元素自动定为空字符(即'\0')。
如char c[12]={'I', ' ', 'a', 'm', ' ', 'h', 'a', 'p', 'p', 'y'}; 则c[10]、c[11]值都为'\0' 。
C语言中,将字符串作为字符数组来处理。一般我们用字符数组来存放字符串时,都要先确定一个足够大的数组,而实际并用不了那么多,而我们只关心其有效位,为测定字符串实际长度,C规定了一个"字符串结束标志",以字符 '\0' 代表。如果有一个字符串,其中第10个字符为'\0',则此字符串的有效字符为9个。也就是说,在遇到字符'\0'时,表示字符串结束,由它前面的字符组成字符串。
系统对字符串常量也自动加一个'\0'作为结束符。
对于语句: pirntf("How do you do? \n"); 实际上该字符串在内存中存放时,系统自动在最后一个字符'\0'的后面加了一个'\0'作为字符串结束标志,在执行printf函数时,每输出一个字符检查一次,看下一个字符是否'\0'。遇'\0'就停止输出。
可以用字符串常量来初始化字符数组。如:
char c[]={"I am happy"};
也可直接写成:
char c[]="I am happy"; 注意此时数组的长度不是10,而是11,因为系统自动加上了'\0'结束符。
字符数组不要求最后一个字符为'\0',而为了使处理字符数组和字符串的方法一致,便于测定字符串的实际长度,能及方便在程序中处理, 在字符数组末尾也常加上一个'\0'。
字符数组的输入输出
(1) 逐个字符输入输出。用格式符"%c"输入或输出一个字符。
(2) 将整个字符串一次输入或输出。用"%S"格式符,意思是输出字符串(String)。例如: char c[]={"china"};
printf("%S", c);
如果一个字符数组中包含一个以上'\0',则遇第一个'\0'时输出就结束。
(3) 若输入字符串长度超过字符数组所定义的长度时,将造成数组下标越界,但系统对此并不报错。
(4) 用%S格式输入字符时,遇空格、Tab键和回车将自动结束输入。
用scanf函数输入时, 遇到空格则认为一个字符串结束。试验如下:
#include
int main()
{
char str1[5], str2[5], str3[5];
scanf("%s %s %s", str1, str2, str3);
printf("%s %s %s\n", str1, str2, str3);
return 0;
}
运行结果:
================================
how are you
分享到:
相关推荐
Dev-cpp5.4.0及API帮助文档 2018年蓝桥杯C语言/c++ 需要的同学可以下载使用
C语言/C++集成开发环境 Dev-C++。一款优秀的C/C++集成开发软件。
c/c++中文帮助文档(API),包含c和c++所有的库函数
同时,为了便于C语言学习,加入C语言流程控制语句演示动画、C语言学习指导、可以方便地进行网络上和本机上的C/C++程序进行对照输入练习、入门程序实例、典型源程序、典型的函数算法,课程设计指导、课程设计源程序、...
#二维码(QRcode)生成算法 C语言/C++ 源码 1. 根据输入字符串识别编码模式; 2. 根据输入字符串长度选择合适的QRcode版本; 3. 将编码转换为二进制位流表示为数据码字; 4. 使用多项式生成纠错码; 5. 将数据码和...
这个文档压缩包包含普通C/C++中文文档和蓝桥杯比赛时用的文档,C/C++中文文档是最新版,支持到C++20和C18,且包含以前版本的内容。蓝桥杯蓝桥杯C/C++组用的文档比正常文档更简略,但包含了ASCII码表。
2021年最新 C/C++中文参考手册
Character Standard C Math Standard C Time & Date Standard C Memory Other standard C functions All C Functions C++ C++ I/O C++ Strings C++ String Streams ...
该资源包括了C/C++所有函数详细得介绍和说明,并且带有代码示例,资源来源于培训学校chm
c / c++ / cpp / stl 中文帮助文档手册chm格式下载 C/C++ 语言参考 基本C/C++ 预处理命令 操作符优先级 转义字符 ASCII码表 基本数据类型 关键字 标准 C 库: Standard C I/O Standard C String...
* 4、如果是C语言文件(*.c)使用 * #include "fis.c" * 包含接口库文件; * 5、如果是C++文件,使用 * extern "C"{ * #include "fis.c" * } * 包含库文件。 * 祝你使用愉快! * hemmingway ...
Tcl/Tk命令与C/C++的集成研究 针对Tcl/Tk脚本中需要调用C/C++函数的问题,简要说明了Tcl/Tk命令的运行机理,给出了一个使用Tcl/Tk命令来调用C/C++动态链接库(DLL)函数的方案,并给出了将C/C++DLL函数封装为Tcl/Tk C...
官方介绍:原名《Turbo C/C++ for Windows 集成实验与学习环境》,支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据C/C++ 初学者的特点,量身定制的一个简单易用的 C/C++程序设计学习与实验软件(支持TC2/...
本视频为C/C++编程经典项目之C++远程桌面监控系统。主要利用C语言知识以及C++编程知识以及少量算法、数据结构的知识来制作,本视频并不建议完全零基础的小伙伴下载学习,因为其中的语法知识或者代码名词可能会对于零...
本压缩包文件集锦了嵌入式C/C++开发编程技巧,高效编程技术探索,C/C++语言相关技术问题的深层探索,并且对嵌入式C/C++程序员应聘常见面试题进行了深入剖析,对嵌入式C/C++开发者编程修炼,提升自身的相关能力具有很...
C/C++指针经典资料大全,十余部经典资料书籍,是您精通C指针的理想教程。
VS CODE离线安装C/C++扩展包,具体安装方法可参考我的博客。
类似man功能的强大、全面、最新的C和C++手册(.chm文件),包含所有C/C++11/14/17/20(实验) 标准的语言特性、类库(STL库)API接口介绍和示例代码。特意0积分共享
c/c++ API 主要是c/c++函数 c/c++ API 主要是c/c++函数 c/c++ API 主要是c/c++函数 c/c++ API 主要是c/c++函数 c/c++ API 主要是c/c++函数 c/c++ API 主要是c/c++函数 C++ API chm C++ API chm C++ API chm C++ API...