字符型

来源:互联网 发布:js防水涂料1型和2型 编辑:程序博客网 时间:2024/04/29 21:16

字符型

字符主要是用来存储单个字母(大小写)、转义字符(‘\c’),因为char占据一个字节的内存空间,所以无法存储中文,在Windows系统中如果想要存储中文字符,可以使用wchar_t来存储,占据两个字节,如下应用案例所示。

#include <stdio.h>/*    字符和宽字符的案例    @author tony ittimeline@163.com    @date 2017/11/19 11:10    @website www.ittimeline.net  */void wchar_sample() {    char en = 'I';    char zh = '中';    printf("zh=%c\n",zh); //char不能存储中文字符,这里会出现乱码    wchar_t val = L'我'; //宽字符 2个字节    printf("char占据的字节数量为%d\t wchar_t占据的字节数量为%d\n",sizeof(en),sizeof(val));    system("pause");    };

C语言提供了putchar和printf函数来实现字符的输出,如果在程序中输出字符,可以使用如下的应用案例实现。

#include <stdio.h>/*    打印字符的两种方式    @author tony ittimeline@163.com    @date 2017 / 10 / 31 15:11    @website www.ittimeline.net*/void print_char() {    char char_val = 'A';    putchar(char_val);    printf("%c",char_val);    printf("%d,%d",sizeof(char_val),sizeof('A'));}

而通过使用getchar()和putchar()函数就可以实现字符的输入输出,如下应用案例所示。

#include <stdio.h>/*    输入输出字符案例    @author tony ittimeline@163.com    @date 2017/10/31 11:36    @website www.ittimeline.net*/void get_put_char_sample() {    char input = getchar();//读取输入的单个字符 保存在字符变量input中    putchar(input);//打印单个字符    getchar();//等待输入任意字符退出程序 回车算是一个字符    getchar();//防止程序退出,再加上一个getchar()函数}

转义字符是以’\’开头,被赋予了特殊的含义的字符,常用的转义字符包括

路径转义

\n 换行

\t tab

\a 发声音

如下程序所示,是实现一个发声音的应用程序

#include <stdio.h>#include <Windows.h>/*    转义字符的使用案例    转义字符被赋予了特殊的含义,一般是以\开头的字符    常用的转义字符有\n,\t。分别实现换行和制表符的功能    @author tony ittimeline@163.com    @date 2017/10/31 14:15    @website www.ittimeline.net*/void escape_character() {    //c语言是使用0和非0来实现循环条件的判断    while (-1) //加上循环可以实现规律间隔的执行某段操作    {        putchar('\a');//发声音 '\a' 是一个警告音,警告音不可过快的发出,否则无效 具体的警告音由操作系统和用户设置有关        Sleep(1000);//暂停一秒时间间隔执行采用线程睡眠函数Sleep();时间单位是毫秒    }}

日常开发中间最常用的就是路径的转义了,如下应用案例所示

#include <stdio.h>#include <stdlib.h>/*    转义字符的使用场景:路径转义    @author tony ittimeline@163.com    @date 2017/11/11 17:17    @website www.ittimeline.net*/void convert_char() {    //64位系统的x(86)路径前面需要增加空格    system("\"C:\\Program Files (x86)\\Tencent\\QQ\\Bin\\QQScLauncher.exe\"");    getchar();}

计算机底层存储的都是数字,而存储字符时,实际上存储的是字符对应的编号,C语言中字符对应的编号由ASC||码表规定。

#include <stdio.h>/*    字符在内存中的存储    @author tony ittimeline@163.com    @date 2017/11/19 11:36    @website www.ittimeline.net*/void char_store() {    char ch = 'a';    printf("ch=%c\n",ch);    printf("字符a对应的整数编码是%d\t,占据的字节数量为%d\n",ch,sizeof(ch));    char zero = '0';    printf("字符0对应的整数编码是%d\n", zero);    char A = 'A';    printf("字符A对应的整数编码是%d\n", A);}

根据输出结果显示小写字母a对应的整数为97,大写字母A对应的整数为65,字符0对应的整数为48。

因此实现大小写的相互转换就非常简单了,如下应用程序所示。

#include <stdio.h>#include <stdlib.h>/*    大小写字符的转换    大写字母转换为小写字母 +32    小写字母转换为大写字母-32    @author tony ittimeline@163.com    @date 2017 / 10 / 31 15:11    @website www.ittimeline.net*/void convert() {    char upper = 'A';    char lower = upper + 0X20; //十六进制的20换算成十进制就是2*16^1=32    printf("大写字母%c对应的小写字母是%c\n",upper,lower);    system("pause");

在日常开发中,字符串是使用频率最高的数据类型,C语言中的字符串使用可以通过字符数组或者是指针,不提供字符串相加的运算

#include <stdio.h>#include <stdlib.h>/*    字符串的使用案例    @author tony ittimeline@163.com    @date 2017 / 10 / 31 15:11    @website www.ittimeline.net*/void str_opeartor() {    //初始化一个字符串 字符串是以\0结尾    char str[5] = {'c','a','l','c','\0'};    printf("str占据的字节数量为为%d",sizeof(str));    system(str);    system("pause");}

字符串的应用案例:加密解密,如下程序所示

#include <stdio.h>/*    字符串加密    @author tony ittimeline@163.com    @date 2017/11/19/11:40    @website www.ittimeline.net*/void str_encryption() {    //初始化一个字符串 字符串是以\0结尾    char str[5] = { 'c','a','l','c','\0' };    printf("加密之前str = %s\n",str);    for (int i = 0; i < 5;i++) {        str[i] += 1;    }    printf("加密之后str = %s\n", str);    system("pause");}
原创粉丝点击