`

关于字符

阅读更多

一、 字符常量
字符常量就是用单撇号括起来的一个字符。没有赋值,只是一个括起来的字符。
二、 字符变量
字符变量:声明一个字符变量然后赋值,值就是一个字符。char类型长度为1字节,所以只能赋值一个长度字符,用单撇号括起来。
占位符:%c,每次只能读取一个字符。
三、 转义字符
因为有些符号是不能显示出来的,比如说回车符,换页,空操作符等等,我们需要使用转义字符进行处理。总结如下:
‘\n’:换行符    ‘\t’:制表符,使下一个输出的数据跳转到下一个输出区
‘\b’:退格,将当前的输出位置退回前一列处,即小时前一个已输出的字符。
‘\r’:回车,将当前的输出位置返回在本行开头.
‘\f’:换页,将当前的输出位置移到下页的开头
‘\0’:代表ASCII代表为0的控制字符,即“空操作”字符。作为字符串的结束标志。
‘\ddd’:代表1-3位八进制数所代表的字符.
‘\xhh’:1-2位十六进制数所代表的字符.
四、 字符数据与整型数据的关系
我个人认为:字符与整型变量的本质是相同的,通过ASCII码进行转换,只是表现形式不同而已,本质是一样的。例如:
int a=97;
char b=’A’;
printf(“%c”,a);
printf(“%d”,b);
我声明了整型与字符的变量,但我输出的时候用的占位符相反,也就是说:不管你输入的数据是什么形式,只看你怎么输出。这时编译器会自动执行一个隐式转换,把int->char,char->int,桥梁是ASCII码,大家可以看一个ASCII码表,‘A’就是97.
五、 字符数组
a) 关于字符数组的说明:在C语言中,字符数组就是补充没有字符串类型的缺陷而产生的,当然,字符数组的用处非仅此而已。
b) 关于字符数组的声明和初始化:
char a[10]=””;//声明一个字符数组长度为10,初始化为空
char b[]=””;//声明一个字符数组,长度未知,声明为空
char c[5]=”abcd”;//这是最标准的形式,长度为5,并且赋值为abcd

c) 关于字符串长度的说明:当我们声明一个数组的时候,如上char c[5]的长度为5个字节,但是我们只能赋值4个字节,因为系统默认会在字符串最后添加一个尾零,也就是’\0’,数组下表从0-4,即0-(n-1)
d) 尾零的作用:通常我们使用尾零判断字符串读取是否到最后,遍历字符串内容或者比较的时候用的比较多。尾零是系统自动添加且无法查看,无需人为添加。
e)
六、 字符串常量
‘a’与“a”的区别:首先,’a’是一个字符,”a”是一个字符串类型。字符类型是没有尾零的,而字符串结尾有尾零,所以说:sizeof(‘a’)=1;
sizeof(“a”)=2;

其实,C语言是没有字符串类型的,如果想使用字符串就必须用到字符数组,即:C语言中是将字符串作为字符数组来处理的。作者怕混淆概念,遂如下论述总结:
字符数组与通常的数组区别:
char a[10]=”hello C”;
char b[10]={‘h’,’e’,’l’,’l’,’o’,’ ‘,’C’};
这两个写法区别就是前者是字符数组有尾零,sizeof(a)=8;
后者是数组,存放的是字符常量,sizeof(b)=7;就差一个尾零,其他用法一致。


关于字符串的几点细节:
1、 输出字符不包括结束符’\0’
2、 用%s格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名:printf(“%s”,a);
3、 如果数组长度大于字符串的实际长度,也只输出遇到’\0’结束。
4、 如果一个字符数组中包含一个以上’\0’,则遇到第一个’\0’时输出结束
5、 可以用scanf函数输入一个字符串
scanf(“%s”,a);
6、 C语言中,数组名代表该数组首元素地址。

七、 常见的字符串函数
a) 输入一个字符串到字符数组:gets
b) 输出一个字符串到字符数组:puts
c) 连接两个字符数组中的字符串,把2接到1后:strcat(1,2);
d) 将字符串2复制到字符数组1中去:strcpy(1,2);
e) 比较字符串1与字符串2的大小,如果1>2,函数值为一个正整数。如果1<2,函数值为一个负整数。如果1=2,函数值为0。
f) 测试字符串长度:strlen(字符数组);//strlen为有效长度,sizeof为所占内存空间大小
g) 将字符串中大写字母替换成小写字母:strlwr(字符串);
h) 将字符串中小写字母替换成大写字母:strupr(字符串);
i) 将字符转换成整型变量:atoi(字符串);
八、 字符型指针
a) 字符型指针就是用指针的方法引用字符串,通过数组名和下标访问字符数组中的元素,也可以通过%s来输出一个字符串。用字符指针指向一个字符串。
b) C语言中对字符串常量是按字符数组来处理的,在内存中开辟了一个字符数组用来存放该字符串常量,但这个数组没有名字,不能通过数组名来引用,只能通过指针变量来引用。
c) 我们可以通过指针指向字符串常量,但是不能通过指针变量对该字符串常量重新赋值,因为字符串常量是不能改变的,是常量。
Char *string=”hello”;//正确的;
char *string;  string=”hello”;//错误的写法,二次定义
d) 通过字符数组名或字符指针变量可以输出一个字符串。而对一个数值型数组,是不能用数组名输出它的全部元素。
e) 对字符串中下标的存取,可以用下标法或指针方法。
f)
九、 做题相关规律及细节总结:
a) 大小写字母转换:小写字母’a’-‘z’的ASCII—减去32—>大写字母’A’-‘Z’的ASCII
分享到:
评论

相关推荐

    关于字符串相等的比较

    ### 关于字符串相等的比较 #### 概述 在计算机编程中,字符串是比较常见的数据类型之一,用于处理文本信息。对于字符串的比较是编程语言中最基础也是最常用的操作之一。本文将详细介绍如何进行字符串比较,并探讨...

    关于 字符编码的 转换 知识

    ### 关于字符编码的转换知识 #### 一、引言 字符编码是在计算机科学领域内一个重要的基础概念,它涉及到如何在计算机系统中存储、处理和传输文本信息。随着信息技术的发展,不同地区和文化背景下的用户对字符的...

    C语言中关于字符串左右循环移位的问题

    C语言中关于字符串左右循环移位的问题 C语言中关于字符串左右循环移位的问题是一个经典的编程题型,今天我们将对其进行详解,并给出两种方法求解。 首先,让我们来解决字符串循环右移的问题。方法一:利用已有的...

    关于字符串的简单功能实现

    ### 关于字符串的简单功能实现 #### 摘要与关键词 本次课程设计的主要目标是对字符串执行五项基本操作,并使学生能够理解和掌握利用汇编语言处理字符串的技术。这些基本功能包括:字符串输入、在指定位置插入字符...

    \delphi中关于字符串的操作

    本篇将详细阐述Delphi中关于字符串的操作,包括判断字符串相似性、检查子串存在性、判断字符串开头和结尾、字符串替换以及在字符串数组中查找和匹配。 1. **AnsiResemblesText** 函数:这个函数位于`StrUtils.pas`...

    面试题,关于字符串的面试题,很详细

    下面是关于字符串处理的面试题总结: 一、求字符串的最小后继 问题:实现一个函数,输入一个字符串,输出该字符串的最小后继。例如,“abc”的最小后继为“abd”,“dhz”的最小后继为“di”。 思路:对最后一个...

    关于字符的一些不解.rtf

    关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解关于字符的一些不解....

    C语言预处理功能——关于字符串化和符号粘贴

    ### C语言预处理功能——关于字符串化和符号粘贴 #### 概述 在C语言编程中,预处理指令提供了一系列强大的工具来帮助开发者优化代码结构、提高代码可读性和可维护性。其中,字符串化(`#`)、符号粘贴(`##`)以及...

    关于字符串操作小东西

    本话题主要围绕"关于字符串操作小东西",将深入探讨如何利用File、Code和String进行有效的字符串管理。 首先,`String`类在Java或类似的面向对象编程语言中是处理文本的基本工具。它提供了丰富的API来创建、修改、...

    hwpre关于字符分割的程序

    在“hwpre关于字符分割的程序”中,"hwpre"可能是项目或程序的名字,而“字符分割”是程序的核心功能。字符分割的主要目标是将一段文本分解成单个字符或者根据特定分隔符进行切割,以便于进行词频统计、关键词提取、...

    Java中关于字符串的若干问题分析.pdf

    ### Java中关于字符串的若干问题分析 #### 一、字符串的不同初始化方法及其影响 在Java中,字符串是一种特殊的数据类型,通常使用`String`类来表示。字符串的初始化方法多种多样,不同方法的选择会对程序的结果...

    关于字符串处理已经不同的处理方法

    这里我们将深入探讨"关于字符串处理以及不同的处理方法"这个主题。 首先,我们要了解基本的字符串类型。在C语言中,字符串通常以`char`数组的形式存在,以空字符'\0'作为结束标志。例如,`char str[] = "Hello"`...

    java实现关于字符串的符号匹配帮助类

    对于标题中提到的“java实现关于字符串的符号匹配帮助类”,我们可以创建一个名为`StringMatchHelper`的类,它包含多个静态方法,用于执行不同的符号匹配操作。以下是一些可能的方法: 1. **isMatchedByRegex...

    c# 关于字符串有规律进行处理动态库

    在这个“c# 关于字符串有规律进行处理动态库”中,我们主要关注的是如何解析字符串以获取其中的节点数量,并进行相应的处理。下面我们将详细探讨这两个核心知识点。 首先,解析字符串获取内部有多少个节点,这通常...

    JavaScript 中关于字符串字节长度的计算比较(含汉字字符串)

    JavaScript 中关于字符串字节长度的计算比较(含汉字字符串) 可用于验证字符串长度。效率比较高。

    关于字符串回文的实现,把abcde打印成edcba

    关于字符串回文的实现,将“abcde”打印成“edcba”,这涉及到字符串操作的基本概念和编程技术。在计算机科学中,一个字符串被称为回文,如果它从左到右读和从右到左读是相同的。例如,“madam”或“racecar”就是...

    C++程序设计关于字符串的基本操作

    期末课程设计题目,使用C++实现关于字符串的基本操作,本人也是学生,初学,写的不好,仅供参考。

    关于字符集编码

    字符集编码是信息处理领域的一个基本技术,它涉及将自然语言中的字符集合与数字系统之间建立对应关系,从而使得计算机可以处理和存储文本信息。字符集是系统支持的所有抽象字符的集合,这些字符包括各国文字、标点...

    C 关于字符串排序

    C 关于字符串排序

    关于字符串包含的问题

    【字符串包含问题】是计算机科学中常见的字符串处理问题,主要关注如何高效地判断一个较短的字符串(子串)是否完全包含在另一个较长的字符串(主串)中。以下是几种解决此类问题的方法: ### 第一节:基础方法 1....

Global site tag (gtag.js) - Google Analytics