C语言——字符与字符串
2013-12-19 10:29
260 查看
这是写的第一篇博客,从此开启我的博客生涯。
今天想尽量把疑惑自己很久的C语言中字符和字符串的问题理一理,都是一些很基本的内容。
现在就开始吧!!!!
字符串:字符串常量,字符串变量
下面一一展开讲解:
1,字符常量:
C语言中有两类字符常量:
一类是用单撇号括起来的字符。如'a','x','d','?'等都是字符常量。
另一类是用一种特殊形式的字符常量,就是以一个字符“\”开头的字符序列。
2,字符变量:
字符变量用来存放字符常量,它只能放一个字符。
字符变量定义形式如下:char c1,c2;
注意:
不要以为一个字符变量中可以放一个字符串。
在所有的编译系统中都规定以一个字节来存放一个字符。
字符变量在内存中是将相应的ASCII代码放到存储单元中,它的存储形式就与整数的存储形式类似。
3,字符串常量:
字符串常量是一对双撇号括起来的字符序列。
注意:
'a'和"a"的不同。
字符串以字符'\0'结束,程序常利用该结束符作为判断字符串结束的标记,从而实现对字符串的轮询操作。
在C语言中,没有专门的字符串变量,如果想将一个字符串存放
在变量中以便保存,
必须使用字符数组,即用一个字符型数组来存放一个字符串,数
组中每一个元素存放一个字符。
4,字符数组:
用来存放字符数据的数组;字符数组中的一个元素存放一个字符。
在C语言中,是将字符串作为字符数组来处理的。
初始化:
char c[ ] = {"I am happy"};
char c[ ] = "hello world"; //不用花括号
注意:数组c的长度是11,而不是10.
因此上面的初始化与下面的初始化等价:
char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y','\0'};
而不与下面的等价:
char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y'};
字符数组的输入输出:
有以下两种方法:
1,用格式控制符“%c”逐个字符输入输出。(利用for循环实现)
2,将整个字符串用控制符“%s”一次输入或输出。
字符串常用处理函数:
//1,求字符串的长度:strlen()
//2,字符串拷贝:strcpy()
//3, 字符串比较:strcmp( )
//4,从字符串中寻找字符:strchr( )
//5,从字符串中寻找子串:strstr( )
//6,从字符串中删除子串:strdel( )
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中
printf,scanf,以控制符%s输入输出时,遇到空格输入输出结束。
以下几个常用字符串的C函数:(以下内容为转载)
1.输入字符串──gets()函数
(1)调用方式:gets(字符数组)
(2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。
(3)使用说明
1)gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。
2)该函数输入的字符串中允许包含空格,而scanf()函数不允许。
2.输出字符串──puts()函数
(1)调用方式:puts(字符数组)
(2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。
( 3)使用说明
1)字符串中允许包含转义字符,输出时产生一个控制操作。
2)该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。
今天想尽量把疑惑自己很久的C语言中字符和字符串的问题理一理,都是一些很基本的内容。
现在就开始吧!!!!
字符型数据:字符,字符串
字符:字符串常量,字符串变量字符串:字符串常量,字符串变量
下面一一展开讲解:
1,字符常量:
C语言中有两类字符常量:
一类是用单撇号括起来的字符。如'a','x','d','?'等都是字符常量。
另一类是用一种特殊形式的字符常量,就是以一个字符“\”开头的字符序列。
2,字符变量:
字符变量用来存放字符常量,它只能放一个字符。
字符变量定义形式如下:char c1,c2;
注意:
不要以为一个字符变量中可以放一个字符串。
在所有的编译系统中都规定以一个字节来存放一个字符。
字符变量在内存中是将相应的ASCII代码放到存储单元中,它的存储形式就与整数的存储形式类似。
3,字符串常量:
字符串常量是一对双撇号括起来的字符序列。
注意:
'a'和"a"的不同。
字符串以字符'\0'结束,程序常利用该结束符作为判断字符串结束的标记,从而实现对字符串的轮询操作。
在C语言中,没有专门的字符串变量,如果想将一个字符串存放
在变量中以便保存,
必须使用字符数组,即用一个字符型数组来存放一个字符串,数
组中每一个元素存放一个字符。
4,字符数组:
用来存放字符数据的数组;字符数组中的一个元素存放一个字符。
在C语言中,是将字符串作为字符数组来处理的。
初始化:
char c[ ] = {"I am happy"};
char c[ ] = "hello world"; //不用花括号
注意:数组c的长度是11,而不是10.
因此上面的初始化与下面的初始化等价:
char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y','\0'};
而不与下面的等价:
char c[ ] = {'I',' ','a','m',' ','h','a','p','p','y'};
字符数组的输入输出:
有以下两种方法:
1,用格式控制符“%c”逐个字符输入输出。(利用for循环实现)
2,将整个字符串用控制符“%s”一次输入或输出。
字符串常用处理函数:
//1,求字符串的长度:strlen()
//2,字符串拷贝:strcpy()
//3, 字符串比较:strcmp( )
//4,从字符串中寻找字符:strchr( )
//5,从字符串中寻找子串:strstr( )
//6,从字符串中删除子串:strdel( )
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中
printf,scanf,以控制符%s输入输出时,遇到空格输入输出结束。
以下几个常用字符串的C函数:(以下内容为转载)
1.输入字符串──gets()函数
(1)调用方式:gets(字符数组)
(2)函数功能:从标准输入设备(stdin)──键盘上,读取1个字符串(可以包含空格),并将其存储到字符数组中去。
(3)使用说明
1)gets()读取的字符串,其长度没有限制,编程者要保证字符数组有足够大的空间,存放输入的字符串。
2)该函数输入的字符串中允许包含空格,而scanf()函数不允许。
2.输出字符串──puts()函数
(1)调用方式:puts(字符数组)
(2)函数功能:把字符数组中所存放的字符串,输出到标准输出设备中去,并用‘\n’取代字符串的结束标志‘\0’。所以用puts()函数输出字符串时,不要求另加换行符。
( 3)使用说明
1)字符串中允许包含转义字符,输出时产生一个控制操作。
2)该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。
相关文章推荐
- C++练习题,持续更新。
- C++常见错误中英文对照表
- __asm__ volatile 之 C语言嵌入式汇编
- c/c++创建Windows服务
- 【转】C++内存分区问题
- 装饰者模式-c++
- c++ string wstring 字符串替换
- c++拷贝构造函数
- C++ 单链表的建立,插入数值,删除数值,排序,遍历,和分割操作
- C语言类型声明的文法
- Printf() 输出格式控制
- c/c++ 数字转成字符串, 字符串转成数字
- C++ wstring string char* wchar_t相互转换
- C++中定义类的三种方式
- 指针和引用操作符的区别
- 指针,揭开你的盖头来
- c语言希尔排序
- c语言快速排序
- c语言插入排序
- C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法