前言:
眼前咱们对“c语言计算字母序号”可能比较关心,姐妹们都需要剖析一些“c语言计算字母序号”的相关文章。那么小编在网络上搜集了一些关于“c语言计算字母序号””的相关内容,希望兄弟们能喜欢,看官们一起来学习一下吧!原题解答
本次的题目如下所示(原题出处:蓝桥杯):
【编程实现】
输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数并输出。
输入描述:输入一行字符
输出描述:按英文字母、空格、数字和其它字符的顺序输出其对应的个数
【样例输入】
a1 b2 c d4 !!! 5
【样例输出】
4
5
4
3
本题的要求非常明确,要求统计不同类型的字符的数量,包括字母、空格、数字和其他字符。很明显,我们需要对字符串的内容进行遍历,并对每一个字符做判断。
这一题如果熟悉Python字符串中的is开头的几个方法,这些方法的返回值类型都是布尔值,那本题就非常容易了,我们看看这几个方法的含义:
方法名称
含义
string.isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
string.isalpha()
如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
string.isdecimal()
如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdigit()
如果 string 只包含数字则返回 True 否则返回 False.
string.islower()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric()
如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isspace()
如果 string 中只包含空格,则返回 True,否则返回 False.
string.istitle()
如果 string 是标题化的(即单词首字母大写)则返回 True,否则返回 False
string.isupper()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
知道了这几个方法的含义,我们很明显就能看出,在遍历每个字符的时候,分别使用isalpha()、isspace()、isdigit()三个方法可以判断字符是否为字母、空格、数字,如果都不是则为其他。代码如下所示:
s = input()alpha, space, num, other = 0, 0, 0, 0for i in s: if i.isalpha(): alpha += 1 elif i.isspace(): space += 1 elif i.isdigit(): num += 1 else: other += 1print(alpha, space, num, other, sep='\n')
有人可能会想,如果我不记得这几个方法,那这道题怎么做呢?数字一共10个、字母大小写加起来52个、空格只有1个。我们可以将它们全部列举出来,使用in运算符进行判断,这道题一样可以做出来。我们看代码:
s = input()alpha, space, num, other = 0, 0, 0, 0alphas = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'nums = '0123456789'for i in s: if i in alphas: alpha += 1 elif i == ' ': space += 1 elif i in nums: num += 1 else: other += 1print(alpha, space, num, other, sep='\n')本题拓展
本题考查的是字符串的相关方法,题目难度★★
字符串的方法的题型可以从很多方面去考,主要离不开字符串的索引、字符串的切片、字符串的方法等等。题型是多变的,关键是熟悉字符串的相关操作。我们看下面这道题目:
某 E 写了一篇文章,标题为字符串 S,由小写英文字符和空格组成。
某 E 恪守规范,因此,字符串 S 是由若干个单词组成的,单词之间由一个空格隔开。
编辑人员要求将单词中的字母的大小写做调整。具体的,对每个单词,编辑人员要求将每个单词中的第奇数个字母改成大写,第偶数个字母改成小写。
关于单词下标的定义:这里我们以 1 为起始下标。也就是说,对一个长度为 n 的单词,我们将字母从头到尾记作第一个、第二个、⋯、第 n 个。
举例:对单词 apple
第一个字母为 a
第二个字母为 p
第三个字母为 p
第四个字母为 l
第五个字母为 e
某 E 要赶 ddl,请你帮她完成这个任务。
输入格式
输入一行一个字符串 S。
输出格式
输出一行一个字符串,代表修改后的标题。
输入样例
i like eat apple
输出样例
I LiKe eAt aPpLe
这道题目的要求是:奇数位的字母大写、偶数位的字母小写。题目本身不难,只需要对奇数位上的字母使用upper()方法改成大写即可。但是这道题我们要注意:第一个字母序号为1,但是索引为0。因此,在代码中奇偶正好相反。否则我们得到的结果也是相反的。本道题的代码如下:
s = input()r = ''for i, v in enumerate(s): if i % 2 == 0: r += v.upper() else: r += vprint(r)