产生一个含有n个空格的字符串_类Basic卡西欧编程入门(5 字符串)

1d9222aa1bd078faee4fb0b9a3a38b14.png

字符串的概念

字符串是由字符组成的。例如,“ HELLO”是一个字符串,就像“} 75GRH $ 0”(尽管这对我们没有任何意义)。字符串由引号“”分隔。

”CASIO”   //包含字符'C''A''S''I''O'的字符串
CASIO      //不带引号,计算器将其解释为变量C,A,S,I和O的乘积
”7851”  //另一个包含字符'7''8''5''1'的字符串
7851     //对于计算器,它只是一个值:7851

始终记住,字符串由引号分隔,否则计算器会将其解释为计算。

字符串具有自己的变量:Str,其后跟1到20之间的数字。变量Str可以在[VARS]-> [F6]-> [F5]中找到。它的工作原理与普通变量相同。

//与变量一样,我们使用→为字符串分配一个“值”
“ MY STRING”→Str 1

//要求用户输入一个字符串(在这里:Str 5)
?→Str 5

//字符串Str 15等于字符串Str 4
Str 4→Str 15

//显示内容
Locate 1,2,Str 1

重要的是要记住,一个字符串限制为255个字符

确切地说,某些字符被编码为2位以上。这些是特殊字符,程序中使用的大多数字符都是1位编码的。因此,当字符串长度少于255个字符时出现错误时,请不要感到惊讶。仅仅因为2位字符占据两倍的位置,因此减少了字符串中最大字符数。

字符串的基本操作

1、返回字符串的长度(StrLen)

要知道字符串的长度(以字符为单位),您可以使用StrLen(<“您的字符串”>)函数。

StrLen(”H​​ELLO”)     // StrLen返回5
StrLen(Str 1)         //取决于Str 1的内容

如果出现“内存错误”,则您的字符串不包含任何字符。这是一种初始化Str的方法:

””→Str 1

注意:字符串中的字符以1位或2位编码的事实不会影响StrLen()的结果。它返回字符数。

2、更改大小写(StrUpr和StrLwr)

更改大小写意味着将大写字母更改为小写字母,反之亦然。就我个人而言,我从未使用过这个功能。

StrUpr()返回大写,StrLwr()返回小写。

StrUpr(“ hello”)     //返回“ HELLO”
StrLwr(“ HELLO”)     //返回“ hello”
StrUpr(“ Hello”)     //返回“ HELLO”
StrLwr(“ hEllO”)     //返回“ hello”

3、比较两个字符串(StrCmp)

、此函数返回3个可能的值:

  • 如果Str 1 = Str 2,则StrCmp()返回0
  • 如果Str 1> Str 2,则StrCmp()返回1
  • 如果Str 1 <Str 2,则StrCmp()返回-1

记住有关StrCmp()的两个重要点:

  • 确切地说,StrCmp()确定两个字符串是否不同,这就是为什么如果两个字符串相同则返回0的原因。
  • 同样,StrCmp()不比较字符串的长度,比较的是两个字符串第一个不相同的字符。
StrCmp(”A”,”B”)                   //返回-1,因为'A'<'B'
StrCmp(”C”,”B”)                  //返回1,因为'C'>'B'
StrCmp(”TEST-X”,”TEST-Y”)      //返回-1,因为'X'<'Y'
StrCmp("Salut","Bonjour")           //返回1,因为'S'>'B'

许多人认为StrCmp()比较字符串的长度,这是错误的,请参照最后一个示例。

4、连接字符串(StrJoin或+)

要合并字符串以形成一个新字符串。可以不需要使用函数而优选使用加号“ +”。此外,与StrJoin()不同,您可以使用“ +”同时连接两个以上的字符串。

我坚持认为,StrJoin()和“ +”产生完全相同的结果。由于上述原因,我强烈建议第二种选择。

”What is your name?”→Str 1

StrJoin(”H​​ELLO”,Str 1)    //可以使用,但不建议

”Hello”+ ”Str 1”+”Welcome to Basic Casio class!”   // 推荐使用

字符串的高级操作

前面看到的功能非常有限,现在我们将增加难度,并且一旦掌握了它们,你将更好地了解它们的功能。

1、提取字符

有三个函数可从字符串中提取字符:

  • StrMid():从指定位置
  • StrLeft():从左侧开始(在字符串的开始)
  • StrRight():从右边开始(在字符串的末尾)

StrMid()允许从给定位置检索一定数量的字符。它以这种方式使用:StrMid(<“字符串”>,<要提取的第一个字符的位置>,<要提取的字符数>),第一个字符的位置为1。

”Hi young programmer !”→ Str 5
StrMid(Str 5,1,2    //返回”Hi”
StrMid(Str 5,4,16   //返回”young programmer”
StrMid(Str 5,4,18   //返回”young programmer !”

如果未指定最后一个参数,StrMid()提取所有字符,直到字符串末尾。

在某些情况下,你需要获取字符串的前n个字符或后n个字符。

StrLeft(Str 5,2   // 返回”Hi”
StrRight(Str 5,12  //返回”programmer !”

2、移动字符

一些预定义的函数可以让你在字符串中移动字符。

线性位移:StrShift()

StrShift()向左或向右移动n个字符。如果n为正,则向左移动;如果为负,则向右移动。

  • StrShift(“ ABCDE”,2) //返回“ CDE(2个空格)”
  • StrShift(“ ABCDE”,-2) //返回“(2个空格)ABC”

字符串的长度在StrShift()之前和之后保持相同,然后将丢失的字符用空格替代。

旋转位移:StrRotate()

使用StrRotate()可以将字符放置在字符串的另一侧。我将用一些示例来说明此功能。

StrRotate()从左向右(如果参数n为正)或从右向左(如果参数n为负)循环移动字符。

StrRotate(”SALUT”,1)       //返回 ”ALUTS”
StrRotate(”SALUT”, -1)     //返回 ”TSALU”


//这是一个有趣的小代码。将其输入到计算器中(文本应在屏幕上滚动):
"PLANETE CASIO(末尾有7个空格)"→Str 1
Do
Locate 2,4,Str 1
StrRotate(Str 1,1)→Str 1
For 1→B To 250
Next
LpWhile Getkey≠47

3、查找字符

StrSrc()函数搜索字符串中的第一个匹配项。用法为StrSrc(<“ 字符串”>,<“ 需查找的字符”>)

StrSrc(”SALUT”,”A”) //返回 2
StrSrc(”PROGRAMMATION”,”A”) //返回 6
StrSrc(”PROGRAMMATION”,”S”) //返回 0  因为 ”PROGRAMMATION”中不存在”S”
//你还可以搜索一个字符串:
StrSrc(”PROGRAMMATION”,”ION”) //返回 11

请注意:StrSrc()可选第3个参数,它表明StrSrc()函数应从哪个字符开始搜索。如果未指定,则搜索从字符串的开头开始。

但是,StrSrc()有一个主要缺陷:它仅返回第一次出现的位置。如果你希望所有出现的内容,例如“ TOTO”中的“ O”,则必须自己编写搜索功能。此外,作为练习,你可以编写一个小的程序用来填补StrSrc()的这一空白。

3、转换字符串

从字符串到变量

要在数学计算中使用字符串的内容是很简单的,我们使用函数Exp(<“ 字符串”>)

假设您的Str 1字符串包含“ 256897”。在这种情况下,Exp(Str 1)返回256897作为值。如果您的字符串包含字母或符号,则Exp()将它们转换为值并执行计算。

”256897”→Str 1
Exp(Str 1)               //返回256897
Exp(Str 1)+ 100000     //返回356897

10→A
”A + 5”→Str 1
Exp(Str 1)           //返回15(因为10 + 5)

从变量到字符串

现在相反。这次,我们使用该函数...实际上,它不存在。不要惊慌,已经有人做了这个程序。该程序称为Var2Str,可以很好地完成工作。你可以在本网页上找到所有必要的说明。

关于转换的部分已经完成,让我们解决字符串的一个有趣且间接的方面:测试列表的存在。

测试列表的存在

使用字符串,我们可以知道列表是否存在。返回主菜单并启动LIST应用程序(即表格应用程序)。列表1的标题为“ Sub”,行数为0,可通过以下方式命名列表:

”CASIO”→List 1[0    //列表1被命名为”CASIO”
Str 1→List 1 [0

9151bd7280cbc9b498967371ac0fe121.png

e79de92eafed0b41a06c152d317cc1cd.png

请注意,(重新)命名现有列表不会更改其值。

这个技巧非常好,如果你命名一个空列表,则第一个框的自动值为0。

请尝试以下示例:

ClrList 26                //确保列表26为空
”CASIO”-> List 26 [0   //我们将列表26命名为”CASIO”
List 26 [1              //返回0

结论

字符串使用得当,可以使您的程序更具功能!它们速度非常快,在游戏中的应用是无限的。例如,某些程序员不是将数据存储在数组中,而是存储在字符串中。在许多情况下,可以大大提高程序性能。

下面是对本课程中所见功能的概述:

  • Str:字符串的“变量”,
  • StrLen:返回字符串的长度(以字符数为单位),
  • StrUp和StrLwr:更改大小写,
  • StrCmp:比较两个字符串,
  • StrJoin或+:将两个或多个字符串连接起来,
  • StrMid,StrLeft和StrRight:提取字符,
  • StrShift和StrRotate:在字符串中移动字符,
  • StrSrc:在字符串中搜索字符或字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值