您的位置:首页 > 编程语言 > C语言/C++

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()函数也能用来输出字符串,且一次能输出多个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: