
字符类型和字符数组
文章平均质量分 63
芷水无棱
这个作者很懒,什么都没留下…
展开
-
信息学奥赛一本通:1171:大整数的因子
数据的接收和存贮:当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算,将每一位数取出,存入数组中。减法借位:if (a[i]<b[i]) { --a[i+1];乘法进位:c[i+j-1]= a[i]*b[j] + x + c[i+j-1];位数的确定:接收时往往是用字符串的,所以它的位数就等于字符串的长度。已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。加法进位:c[i]=a[i]+b[i];(1)数据的接收方法和存贮方法。原创 2024-12-23 09:28:38 · 714 阅读 · 0 评论 -
信息学奥赛一本通:1170:计算2的N次方
任意给定一个正整数N(N<=100),计算2的n次方的值。输出2的N次方的值。原创 2024-12-23 09:24:44 · 593 阅读 · 0 评论 -
信息学奥赛一本通:字符数组
/数组ch1是一个具有5个字符元素的一维字符数组//数组ch2是一个具有15个字符元素的二维字符数组。原创 2024-04-19 10:16:39 · 271 阅读 · 0 评论 -
信息学奥赛一本通:1149:最长单词2
【题目描述】一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。【输入】一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。【输出】该句子中最长的单词。如果多于一个,则输出第一个。【输入样例】【输出样例】University【参考程序一】s.substr(start, length)方法:返回一个从指定位置开始,并具有指定长度的子字符串。参数:1.start:必选。所需的子字符串的起始位置。原创 2024-03-19 10:00:30 · 982 阅读 · 0 评论 -
信息学奥赛一本通:1148:连续出现的字符
【题目描述】给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。【输入】第一行包含一个正整数k,表示至少需要连续出现的次数。第二行包含需要查找的字符串。字符串长度在1到2500之间,且不包含任何空白符。【输出】若存在连续出现至少k次的字符,输出该字符;否则输出No。【输入样例】3abcccaaab【输出样例】c【参考程序一】size()size()函数是用于计算string对象长度的一个成员函数,它包含在STL中size()也可返回vector、map对象的长度。原创 2024-03-18 09:17:47 · 872 阅读 · 0 评论 -
信息学奥赛一本通:1147:最高分数的学生姓名
namencout。原创 2024-03-17 20:04:17 · 857 阅读 · 0 评论 -
信息学奥赛一本通:1146:判断字符串是否为回文
【题目描述】输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。【输入】输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。【输出】如果字符串是回文,输出yes;否则,输出no。【输入样例】abcdedcba【输出样例】yes【参考程序一】原创 2024-03-15 09:22:48 · 1209 阅读 · 0 评论 -
信息学奥赛一本通:1145:字符串p型编码
100200300可描述为"1个1、2个 0、1个2、2个0、1个3、2个0",因此它的p型编码串为112012201320。它包含在#include 这个头文件中,strlen函数接受的实参是一个字符串数组,返回值是字符串数组的长度,不包括空字符在内,返回的值是一个int类型的整数值。cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度。输入仅一行,包含字符串str。原创 2024-03-12 08:55:59 · 1063 阅读 · 0 评论 -
信息学奥赛一本通:1144:单词翻转
【题目描述】输入一个句子(一行),将句子中的每一个单词翻转后输出。【输入】只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。【输出】翻转每一个单词后的字符串,单词之间的空格需与原文一致。【输入样例】【输出样例】【参考程序一】cin.getline()函数【函数用法】接收一个字符串并输出(可含空格)。【参数详解】1.cin.getline()函数的完整形式有三个参数:cin.getline(字符数组名,字符个数,结束标志)原创 2024-03-11 08:58:42 · 2173 阅读 · 0 评论 -
信息学奥赛一本通:2050:【例5.20】字串包含
是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数。如果查找失败,返回string::npos,即-1(当然打印出的结果不是-1,而是一个很大的数值,那是因为它是无符号的)。我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不对他进行过多的讲解只是了解它的基本使用,最重要的是和string::npos的关系。一行,包含两个字符串,中间由单个空格隔开。原创 2024-03-10 10:19:03 · 1795 阅读 · 0 评论 -
信息学奥赛一本通:1143:最长最短单词
它包含在#include <string.h>这个头文件中,strlen函数接受的实参是一个字符串数组,返回值是字符串数组的长度,不包括空字符在内,返回的值是一个int类型的整数值。strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有’\0’结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。就是说它进行初始化时并不关心你要初始化的数组是什么类型的,它均以字节为单位进行初始化。第1行,第一个最长的单词。原创 2024-03-08 08:51:52 · 1272 阅读 · 0 评论 -
信息学奥赛一本通:1142:单词的长度
【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。【输入】一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。【输出】依次输出对应单词的长度,之间以逗号间隔。【输入样例】【输出样例】【输出样例】scanf()!=EOF的理解 。原创 2024-03-08 08:44:03 · 862 阅读 · 0 评论 -
信息学奥赛一本通:1141:删除单词后缀
【题目描述】给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。【输入】输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。【输出】输出按照题目要求处理后的单词。【输入样例】referer【输出样例】refer【输出样例】原创 2024-03-07 09:31:12 · 1059 阅读 · 0 评论 -
信息学奥赛一本通:1140:验证子串
我们在学习C++的时候必不可少的使用到string类中的find()函数,它是一个查找函数,功能还是很强大的,但是此处我们不对他进行过多的讲解只是了解它的基本使用,最重要的是和string::npos的关系。string::find()函数是一个字符或字符串查找函数,该函数有唯一的返回类型,即string::size_type,即一个无符号整形类型,可能是整数也可能是长整数。如果查找成功,返回按照查找规则找到的第一个字符或者子串的位置;如果查找失败,返回string::npos,即-1。原创 2024-03-07 08:55:58 · 1425 阅读 · 0 评论 -
信息学奥赛一本通:1139:整理药名
【题目描述】医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。【输入】第一行一个数字n,表示有n个药品名要整理,n不超过100。接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名由字母、数字和-组成。【输出】n行,每行一个单词,对应输入的药品名的规范写法。【输入样例】4AspiRin。原创 2024-03-06 09:23:58 · 2747 阅读 · 0 评论 -
信息学奥赛一本通:1138:将字符串中的小写字母转换成大写字母
它包含在#include <string.h>这个头文件中,strlen函数接受的实参是一个字符串数组,返回值是字符串数组的长度,不包括空字符在内,返回的值是一个int类型的整数值。cin.getline(str,8,'m'),当输入abcdefghijklmn时,输出abcdefg,因为第8位是不可见字符'\0'注意:若指定参数“字符个数”为n,则利用cout函数输出时只显示字符数组中的前n-1个字符。cin.getline(str,8,'e'),当输入abcdefghijklmn时,输出abcd。原创 2024-03-05 10:17:25 · 862 阅读 · 0 评论 -
信息学奥赛一本通:1137:加密的病历单
【题目描述】小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)1.原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)2.逆序存储(abcd -> dcba )3.大小写反转(abXY -> ABxy)【输入】一个加密的字符串。原创 2024-03-05 10:15:03 · 696 阅读 · 0 评论 -
信息学奥赛一本通:1136:密码翻译
【题目描述】在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。【输入】输入一行,包含一个字符串,长度小于80个字符。【输出】输出每行字符串的加密字符串。【输入样例】Hello!【输出样例】Ifmmp!【输出样例】原创 2024-03-04 09:49:30 · 1395 阅读 · 0 评论 -
信息学奥赛一本通:1135:配对碱基链
题目描述】脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。【输入】一个字符串,表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。字符串长度不超过255。【输出】原创 2024-03-04 09:42:14 · 802 阅读 · 0 评论 -
信息学奥赛一本通:1134:合法C标识符查
【题目描述】给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。C语言标识符要求:1.非保留字;2.只包含字母、数字及下划线(“_”)。3.不以数字开头。【输入】一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。【输出】一行,如果它是C语言的合法标识符,则输出yes,否则输出no。【输入样例】RKPEGX9R;TWyYcp【输出样例】no【参考程序一】原创 2024-03-03 09:01:52 · 892 阅读 · 0 评论 -
信息学奥赛一本通:1133:输出亲朋字符串
亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符;给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最后一个字符由给定字符串s的最后一个字符ASCII值加s的第一个字符的ASCII值。输入一行,一个长度大于等于2,小于等于100的字符串。字符串中每个字符的ASCII值不大于63。输出一行,为变换后的亲朋字符串。编写程序,求给定字符串s的亲朋字符串s1。原创 2024-03-01 09:06:40 · 586 阅读 · 0 评论 -
信息学奥赛一本通:1132:石头剪子布
石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。第一行是一个整数N,表示一共进行了N次游戏。现在,需要你写一个程序来判断石头剪子布游戏的结果。游戏规则:石头打剪刀,布包石头,剪刀剪布。输出包括N行,每一行对应一个胜利者(),或者游戏出现平局,则输出。原创 2024-03-01 09:04:36 · 647 阅读 · 0 评论 -
信息学奥赛一本通:1131:基因相关性
【题目描述】为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。现比对两条长度相同的DNA序列。定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。【输入】有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。【输出】原创 2024-03-01 09:00:27 · 904 阅读 · 0 评论 -
信息学奥赛一本通:1130:找第一个只出现一次的字符
【题目描述】给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。【输入】一个字符串,长度小于100000。【输出】输出第一个仅出现一次的字符,若没有则输出no。【输入样例】abcabd【参考程序一】原创 2024-02-29 09:01:33 · 1609 阅读 · 0 评论 -
信息学奥赛一本通:1129:统计数字字符个数
【题目描述】输入一行字符,统计出其中数字字符的个数。【输入】一行字符串,总长度不超过255。【输出】输出为1行,输出字符串里面数字字符的个数。【输入样例】【输出样例】4【参考程序一】原创 2024-02-29 08:51:16 · 1547 阅读 · 0 评论 -
信息学奥赛一本通:1839:【05NOIP提高组】谁拿了最多奖学金
接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。第三行是这N个学生获得的奖学金的总数。2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;原创 2024-02-28 08:30:48 · 1142 阅读 · 0 评论 -
信息学奥赛一本通:2049:【例5.19】字符串判等
【题目描述】判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。【输入】两行,每行包含一个字符串。【输出】若两个字符串相等,输出YES,否则输出NO。【输入样例】【输出样例】YES【参考程序一】原创 2024-02-27 13:46:02 · 1234 阅读 · 0 评论 -
信息学奥赛一本通:2048:【例5.18】串排序
对给定的n(1≤n≤20)个国家名(国家名字长度不超过20),按其字母的顺序输出。第一行为国家的个数n;以下n行为国家的名字。n行,排序后的国名。原创 2024-02-26 10:12:42 · 1160 阅读 · 0 评论 -
信息学奥赛一本通:2047:【例5.16】过滤空格
一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。一行,一个字符串(长度不超过200200),句子的头和尾都没有空格。原创 2024-02-26 10:10:14 · 610 阅读 · 0 评论 -
信息学奥赛一本通:2046:【例5.15】替换字母
输入两行内容,第1行是原文(长度不超过200个字符),第2行包含以空格分隔的两个字符A和B,要求将原文中所有的字符A都替换成字符B,注意:区分大小写字母。在应用计算机编辑文档的时候,我们经常遇到替换任务。如把文档中的“电脑”都替换成“计算机”。现在请你编程模拟一下这个操作。一行,输出替换后的结果。原创 2024-02-23 16:21:13 · 967 阅读 · 0 评论