首页 > 其他分享 >W.02 字符与字符串初步

W.02 字符与字符串初步

时间:2023-10-01 23:34:19浏览次数:36  
标签:字符 W.02 输出 char 字符串 输入 数字

字符与字符串初步

字符

声明一个字符变量

类似于 int, 我们有 char 类型来声明一个字符变量。在赋值时使用单引号包裹字符。例如:char c='+';

字符的输入输出与 int 类似。值得一提的是,在 cincout 中,不同类型的变量是可以一次性输入,输出的。例如:

int a;
char c;
cin>>a>>c;

字符可以是 0~9 的数字,可以是大小写字母,还可以是 + - " / 等等。

整数与字符转换

最通用的信息规范 ASCII 码(美国信息交换标准代码)规定了每个字符对应什么数字。

你可以输出 (int)('c') 来获取字符对应的数字,同样的,我们也可以用数字对应回字符:(char)(67)

输出 0~9,a~z,A~Z 的 ASCII 码,看看有什么规律?(推荐选几个连续的字母实操一下)

你发现了,这三块对应的数字各自是连续的。这让我们可以通过对数字的控制来输出我们想要的字符。

比如,我们想输出第12个小写英文字母:
cout<<(char)((int)('a')-1+12);
请你思考一下这样做的正确性,并且练习一下按顺序输出全部大写字母。

另外一提,想要将字符的 ASCII 码和整数相加,可以略去“将字符变为整数”一步不写,编译器会自动转换。例如:(char)('a'-1+15)

字符练习题

  • 输入一个字符,如果是小写字母,输出对应的大写字母。如果不是,直接输出输入的字符。

  • 输入一个整数,一个字符,一个整数,字符可能为 +,-,*,/。输出对应的运算结果。(注意:输入不同的变量时必须用空格或换行分隔)

字符串

我们这里只使用 string。关于 char 来定义数组的办法较为繁琐,略去。

头文件 cstring

你代码的最上面写了一句 #include<iostream>
这代表着你引入了 iostream 的功能。

字符串的功能在另一个头文件里:cstring。
你应该在 iostream 的后面再加一行 #include<cstring>

字符串的声明

字符串,可以想象成一个字符构成的数组。不过,在定义字符串时可以不用写成数组形式,直接有一个类型:string

定义方式类似,字符串赋值时使用双引号包裹内容。
string s="haraki";

输入输出也类似。在这里,我们要讲解一种新的输入办法:读取一整行。
在之前,我们知道输入时会以空格分隔。但是当我们想输入一个带空格的字符串,如果普通输入,就只能读到前半句。

我们使用一句函数来读取一整行:getline(cin,s);

字符串和字符的关系

要获取字符串中的一个字符,与数组类似,使用方括号。注意,第一个字符的下标为 0,从 0 开始。
s[0] 是第一个字符。

字符串长度

字符串有自带的一些功能。我们只会介绍一个,更多的以后再学。

  • size 函数:字符串长度
    s 是一个字符串,使用 s.size() 获取长度。你可以把这一段看做是整数(这个函数的值是一个整数)。

例如,for(int i=0;i<s.size();i++) 遍历了字符串每个字符的下标。
注意,要用小于号,因为从 0 开始。

例题

输入一个算式,输出结果。类似于上面的练习题 2,但是输入时不加空格。

这意味着我们要做三件事:

  1. 找到运算符的位置
  2. 对运算符之前,之后的部分转换为数字
  3. 判断运算符类型,计算结果

第一点很好做:循环一遍字符串里的每个字符,判断即可。
第二点怎么办呢?

我们可以定义一个数 a=0。
对一个字符串表示了数字,我们从第一位开始:先让 a 乘以 10,再让 a 加上这一位数字。(应该加上这一位字符减去 '0',实现字符与数字的转化),然后进行下一位的分析。
如此,便可提取出数字。如果不理解,可以看下下图。

pPqbAzt.md.jpg

第三点也很简单。

练习题

  • 实现上面的例题。
  • 输入一行英文,修正格式:每段话最开始(用句号结束一句话)要大写,其他都改成小写,除了单独的 I。
  • 输入一个字符串,输出出现次数最多的一个或几个字符。

标签:字符,W.02,输出,char,字符串,输入,数字
From: https://www.cnblogs.com/haraki/p/w02.html

相关文章

  • python基础:文本(字符串)
    一前言环境:python3.10win10在python中,我们要表示的每个数据都是归属于某个类型,这个类型要么是python已经帮我我们写好的即内置的数据类型,如int、float、List、Dict等,要么来自于第三方库,要么我们自己定义一个类型在python中文本是属于str类型二用str类型来表示文本字符串相......
  • KMP字符串匹配算法
    挑战最通俗的KMP算法讲解什么是\(KMP\)KMP是一种用于模式串匹配问题的算法。给出一个文本串和模式串,查询模式串在文本串中的(出现次数、出现位置等等)的问题称为“模式串匹配问题”。KMP算法的本质是:针对模式串构建一个特定的数组,用于在匹配失败时减少后续匹配过程中的无用比......
  • fmt格式字符
    fmt格式字符代码//example.gopackagetestimport"fmt"funcFmtVerbs(){ fmt.Println("通用") fmt.Printf("%%\n")//输出% //%d代表输出整型(十进制) //%b代表输出二进制 //%o代表输出八进制 //%x代表输出十六进制(小写) //%X代表输出十六进制(大写) //%for%F代......
  • WebKit Inside: CSS 样式表解码字符集
    CSS样式表引入有3种方式:外部样式表、内部样式表、行内样式,不同的引入方式,解码样式表的字符集原理不一样。外部样式表外部样式表由link标签引入,当WebKit解析到link标签时就会构造CachedCSSStyleSheet对象。这个对象持有CachedResourceRequest对象和TextResourceDec......
  • 使用正则表达式判断日期字符串格式是否合法遇到的问题(解决)
    引言我们在使用SpringMVC从前端接受传递过来的日期数据时,默认传递过来的数据是String类型,如果我们从前端传递过来的数据格式是yyyy/MM/dd,SpringMVC有内置类型转化器会将String类型自动转化成Date类型。但如果我们从前端传递过来的数据格式是yyyy-MM-dd,SpringMVC的内置转化器就不......
  • 修改了字符集,好多软件不能正常使用,所以,慎重。。。。
    这里,默认是没有选中的。所以,你千万不要随便就选中了。(terminal里乱码的问题,可以通过命令:chcp65001解决)。如果你执意选中了这里,重启之后,至少4个软件异常:1、同花顺彻底不能用了2、央视影音右键也是一片黑3、QQ游戏里的QQ象棋,按钮上的汉字无法显示4、QQ也得更新,中文文件夹乱码......
  • Bash-条件判断(文件判断,整型/字符串判断)
    按文件类型判断红框常用 使用方式:test-e/root/install.log[-e/root/install.log]#[前后有空格]常用判断,比如判断root是否为目录[-d/root]&&echo"yes"||echo"no" 按文件权限判断 例子:若有student.txt权限如下:-rw-r--r--;不能判断是哪个是否......
  • 字符串常量池
    1.简介字符串常量池(StringPool)又称为字符串池。String类是在工作中使用频率非常高的一种对象类型,JVM为了提升性能和减小内存开销,避免字符串的重复创建,维护了一块特殊的内存空间,即字符串常量池。(由String类私有地维护)字符串池的一个实现前提:String对象是不可变的。2.创......
  • String字符串经典问题
    publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(Stringargs[]){Exampleex=newExample();ex.change(ex.str,ex.ch);......
  • Bash-字符处理命令
    排序命令sortsort[选项]文件名选项-f忽略大小写-n以数值型进行排序,默认使用字符串型排序-r反向排序-t指定分隔符,默认分隔符是制表符-kn[,m]按指定的字段范围排序,从n开始m结束(默认到行尾)例子:sort/etc/passwd#排序用户信息文件sort-r/et......