字符和字符串[通俗易懂]

字符和字符串

大家好,又见面了,我是全栈君。

关于字符

类型名:char
功能:说明了一个字符数据集合
范围:Pascal语言的字符集。也就是ASCII字符集
表示方法:字符类型中的一个元素表示就是用单引號括起来的一个且仅一个字符。

‘1’、  ‘A’、  ‘b’
字符类型是有序类型。能够比較大小。
字符类型占内存一个字节。

字符常量的定义:
const
  字符常量=‘字符’
  字符变量的定义:
Var
  字符变量:char;

字符和字符串[通俗易懂]

例题

模拟一个简单的计算器,即输入两个数和一个算符(加、减、乘、除)。输出运算结果。
输入:
12 24
+
输出:
36

Program exam5_4;

Var  a,b,c:integer;  

 ch: char;

begin

  readln(a,b);

 readln(ch);

  case ch of  

   ‘+’: c := a + b;
    ‘-’: c := a – b;  

   ‘*’: c := a * b;

    ‘/’: c := a div b;  

 end;
  writeln(c);

end.

字符函数

字符类型是一个有序类型, 字符的大小顺序按其SCⅡ代码的大小而定。

函数succ、pred、ord 适用于字符类型。

比如:
后继函数:succ(‘a’)=‘b’
前继函数:pred(‘B’)=‘A’
序号函数:ord(‘A’)=65
转字符函数:chr(65)=‘A’

练习

按字母表顺序和逆序每隔一个字母打印。即打印出:
a c e g i k m o q s u w y
z x r v t p n l j h f d b

字符串类型

字符串是由字符组成的有穷序列。
字符串类型定义:
type 
  <字符串类型标识符>=string[n];
var
  字符串变量: 字符串类型标识符;

当中:n 是定义的字符串长度,必须是0~255 之间的自然整数,第0 号单元中存放串的实际长度,程序执行时由系统自己主动提供,第1~n号单元中存放串的字符。

若将string[n]写成string,则默认n值为255。

比如:
type
  man=string[8]。
  line=string;
var
  name:man;
  screenline:line。

例题

输入一串字符串,,将当中的小写字母转换为大写字母后输出

思路:
1、枚举每一个字符s[i]
2、推断s[i]是否为小写字母  ‘a’<=s[i]<=‘z’
3、将s[i]转换为大写字母   S[i]:=chr(ord(s[i])-ord(‘a’)+ord(‘A’));
4、输出原字符串

program strtest;
var
  s:string;
  i:integer;
begin
  readln(s);
  for i:=1 to ord(s[0]) do
    begin
      if (s[i]>=’a’) and (s[i]<=’z’) then
        s[i]:=chr(ord(s[i])-ord(‘a’)+ord(‘A’));
    end;
  writeln(s);
end.

1、输入一串英文,抽取出ASCII值为奇数的英文输出。
【输入】FreePascal
【输出】eeasca
2、分别统计一个字符串中大写字母和小写字母的个数。
【输入】AaaBBb123CCccccd
【输出】upper=5 lower=8

字符串的操作

1.+:连接运算符
比如:‘Turbo ’+‘PASCAL’的结果是‘Turbo PASCAL’。若连接的结果字符串长度超过255,则被截成255 个字符。若连接后的字符串存放在定义的字符串变量中,当其长度超过定义的字符串长度时。超过部份字符串被截断。
比如:
var
  str1。str2,str3:string[8];
begin
  str1:=‘Turbo ’;
  str2:=‘PASCAL’;
  str3:=str1+str2;
end.
则str3的值为:‘Turbo PA’。

字符串的比較

2.=、〈〉、〈、〈=、〉、〉=:关系运算符
两个字符串的比較规则为。从左到右依照ASCⅡ码值逐个比較,遇到ASCⅡ码不等时,规定ASCⅡ码值大的字符所在的字符串为大。
比如:
‘AB’〈‘AC’ 结果为真。
‘12’〈‘2’ 结果为真;
‘PASCAL ’=‘PASCAL’ 结果为假;

练习

对给定的10个字符串。按其字母的顺序排序输出

字符串的函数和过程

字符和字符串[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115352.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 5 types of thresholding「建议收藏」

    5 types of thresholding「建议收藏」threshold

    2022年5月30日
  • 计算机操作系统进程管理总结报告_进程的管理和控制实验报告

    计算机操作系统进程管理总结报告_进程的管理和控制实验报告计算操作系统进程管理一、进程与线程1.1、进程进程是资源分配的基本单位。进程控制块PCB(ProcessControlBlock)描述的是进程的基本信息以及进程的运行状态,我们说的创建及撤销进程都是对进程控制块PCB的操作。进程之间可以并发执行。一个程序中可以有多个进程。1.2、线程线程是独立调度的基本单位。一个进程中可以有多个线程,他们之间共享…

    2022年9月10日
  • 显示搜索dota2协调服务器,搜索dota2游戏协调服务器中【操作方式】

    显示搜索dota2协调服务器,搜索dota2游戏协调服务器中【操作方式】喜欢使用电脑的小伙伴们一般都会遇到win7系统搜索dota2游戏协调服务器中的问题,突然遇到win7系统搜索dota2游戏协调服务器中的问题就不知道该怎么办了,其实win7系统搜索dota2游戏协调服务器中的解决方法非常简单,按照1:DOTA2服务器蹦了之后,进入DOTA2,发现最顶端先是提示:“搜索DOTA2协调服务器中…”2:然后就是显示:“正在连接至DOTA2游戏协调服务器…”来操作就行了,…

    2022年5月17日
  • 排序二叉树-删除节点

    排序二叉树-删除节点前面(https://blog.csdn.net/jsjsjs1789/article/details/106772632),我们已经了解了什么是排序二叉树以及排序二叉树的遍历和添加元素,现在我们一起来看一下,排序二叉树是如何删除元素的。packagexmht.datastructuresandalgorithms.datastructure.binarysortTree;/***@authorshengjk1*@date2020/6/15*/publicclassB

    2022年7月25日
  • 关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括

    关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括关系数据库设计理论设计一个好的关系数据库系统,关键是要设计一个好的数据库模式(数据库逻辑设计问题)数据库逻辑设计主要解决的问题关系数据库应该组织成几个关系模式关系模式中包括哪些属性“不好”的数据库设计举例:为学校设计一个关系数据库关系模式:UN(Sno,Cno,G,Sdept,MN)Sno:描述学生Sdept:描述系名MN:描述系…

    2022年10月16日
  • docker复制文件到宿主机_下面哪几个属于docker网络模式

    docker复制文件到宿主机_下面哪几个属于docker网络模式自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。 一、端口映射(局域网,外网此方式均可)。此种方式是将容器的某个端口映射到宿主机的某个端口,其它主机访问容器提供的服务需要通过宿主机的IP进行访问:dockerrun-p9000:8000–namec…

    2022年8月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号