题 1134 : 【 入门 】 字符统计
DESCRIPTION
题 1134 : 【 入门 】 字符统计 Description 输入一串 小写字母 ( 以‘ .’ 为结束标志 ) ,统计出每个字母在该字符串中出现的次数 ( 若某字母不出现,则不要输出 ) 。 要求:每行输出 5 项,每项以空格隔开。 Input 输入一行以 '.' 结束的字符串 Output 输出相应小写字母的个数。 Sample Input aaaabbbccc. Sample Output a:4 b:3 c:3. 按照形状计数. A[ ]. A[ ]. A[ ]. A[ ]. ch. a[‘a’]. a[‘b’]. …. - PowerPoint PPT PresentationTRANSCRIPT
题 1134 :【入门】字符统计
Description 输入一串小写字母 ( 以‘ .’ 为结束标志 ) ,统计出每个字母在该字符串中出现的次数 ( 若某字母不出现,则不要输出 ) 。
要求:每行输出 5 项,每项以空格隔开。
Input 输入一行以 '.' 结束的字符串
Output 输出相应小写字母的个数。
Sample Input aaaabbbccc.
Sample Output a:4 b:3 c:3
A[ ] A[ ] A[ ] A[ ]
按照形状计数
ch
var a:array['a'..'z'] of integer; i,ch:char; t:integer;begin fillchar(a,sizeof(a),0); read(ch); t:=0; while ch<>'.' do begin a[ch]:=a[ch]+1; read(ch); end; for i:='a' to 'z' do if a[i]<>0 then begin write(i,':',a[i],' '); inc(t); if t mod 5=0 then writeln; end;end.
a[‘a’] a[‘b’] … a[‘z’]
0 0 0
aacda.
12 1 13
st:string;len,j:integer;i:char;a:array['a'..'z'] of integer;begin read(st); len:=length(st)-1; for i:='a' to 'z' do a[i]:=0; for i:= 'a' to 'z' do for j:=1 to len do if i=st[j] then a[i]:=a[i]+1; for i:='a' to 'z' do if a[i]<>0 then write(i,':',a[i],' ');end.
罗艺辰
字符串操作
字符串的操作(一)字符串的运算和比较
由字符串的常量、变量和运算符组成的表达式称为字符串表达式。字符串表达式。字符串运算符包括: 1 . + :连接运算符 例如: 'Turbo '+'PASCAL' 的结果是 'Turbo PASCAL' 。 若连接的结果字符串长度超过 255 ,则被截成 255 个字符。
2、关系运算符
= 、〈〉、〈、〈 = 、〉、〉 = :关系运算符
两个字符串的比较规则为,从左到右按照 ASCⅡ 码值逐个比较,遇到 ASCⅡ 码不等时 , 规定 ASCⅡ 码值大的字符所在的字符串为大。 例如:‘ AB’ 〈‘ AC’ 结果为真; ‘ 12’ 〈‘ 2’ 结果为真; ‘ 21’>’2’ 结果为真
'PASCAL '='PASCAL' 结果为假;
4-27 设有 n 个正整数 n<=20, 将他们连接成一排,组成一个最大的多位整数。
例如: n=3 13 312 343 343 312 12
n =2 ’13’ +‘131’ <‘131’+’13’ 131 13 13 131
排序 for i:=1 to n-1 do
for j:=i+1 to n do
比较 111 2
‘111’ ‘2’
4-27 设有 n 个正整数 n<=20, 将他们连接成一排,组成一个最大的多位整数。
例如: n=3 13 312 343 343 312 12
343 343
是否能一起读进去,然后分割下来?
操作 类型 作用 返回值 例子
length(s) 函数 求字符串 s 的长度 整型 s:='123456789';l:=length(s);{l 的值为 9}
copy ( s,w,k) 函数 复制 s 中从 w 开始的 k 位 字符串 s:='123456789';
s1:=copy(s,3,5);{s1 的值是 '34567'}
val(s,k,code) 过程 将字符串 s 转为数值,存在 k 中; code 是错误代码
var s:string;k,code:integer;begins:='1234';val(s,k,code);write(k); {k=1234}
str(i,s) 过程 将数值 i 转为字符串 s
i:=1234;str(i,s);write(s); {s='1234'}
Delete(s,w,k) 过程 在 s 中删除从第 w位开始的 k 个字符
s := 'Honest Abe Lincoln';Delete(s,8,4);Writeln(s); { 'Honest Lincoln' }
Insert(s1, S, w) 过程 将 s1 插到 s 中第 w位
S := 'Honest Lincoln';Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }
pos (c, s) 函数 求字符 c 在 s 中的位置 整型 S := ' 123.5';
i :=Pos(' ', S);{i 的值为 1}
+ 运算符 将两个字符串连接起来
s1:='1234';s2:='5678';s:=s1+s2;{'12345678'}
以 年 - 月 - 日格式输入,要求分三行输出年、月、日
输入: 1900-4-12
输出: 1900
4
12
输入: 10-12-5
输出: 10
12
5
对输入的一句子实现查找且置换的功能。分析分析 :: 程序中程序中 ,, 输入要查找的字符串及要置换的字符串输入要查找的字符串及要置换的字符串 ,, 充分用上了字符串处理的标准过程充分用上了字符串处理的标准过程
deletedelete 、、 insertinsert 及标准函数及标准函数 pospos 。。
程序如下 : program ex8_5; var s1,s,o:string; i:integer; begin readln(s1); readln(s); readln(o); i:=pos(s,s1); while i<>0 do begin delete(s1,i,length(s)); insert(o,s1,i); i:=pos(s,s1); end; writeln(s1); end.
题 1188: 【基础】高精度加法
计算 a+b 的值, a,b 皆不超过 240 位。
Input 两个数 每行一个
Output 一个数
Sample Input
111111111111111111111111111111111111
222222222222222222222222222222222222
Sample Output
333333333333333333333333333333333333
program ex1188;
var st1,st2:string;
a,b:array[1..250] of integer;
len1,len2,len,c,i:integer;
begin
readln(st1); len1:=length(st1);
readln(st2); len2:=length(st2);
for i:=1 to len1 do a[i]:=ord(st1[len1-i+1])-48;
for i:=1 to len2 do b[i]:=ord(st2[len2-i+1])-48;
if len1>len2 then len:=len1 else len:=len2;
c:=0;
for i:=1 to len do
begin
a[i]:=a[i]+b[i]+c;
c:=a[i] div 10;
a[i]:=a[i] mod 10;
end;
if c<>0 then write(c);
for i:=len downto 1 do write(a[i]);
end.