C语言——字符与字符串

这是写的第一篇博客,从此开启我的博客生涯。

今天想尽量把疑惑自己很久的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()函数也能用来输出字符串,且一次能输出多个。







  
     
   





















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章