博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C程序设计语言-练习3-3
阅读量:5113 次
发布时间:2019-06-13

本文共 936 字,大约阅读时间需要 3 分钟。

题目:编写函数expand(s1, s2),将字符串中类似于a-z一类的速记符号在字符串

s2中扩展为等价的完整列表abc...xyz,并可处理a-b-c、a-z0-9、于-a-z等类似

的情况。作为前导和尾随的的-字符原样排印。

 

1)假设s2的的空间足够存放扩展后的s1。

2)为简化程序,我就不考虑前导和尾随字符了。

 

 1 
#include 
<
iostream
>
 2 
 4 
using
 
namespace
 std;
 5 
 6 
//
扩展s1到s2,假设s2的空间足够大
 7 
void
 Expand(
char
 s1[], 
char
 s2[])
 8 
{
 9 
    
int
 j 
=
 
0
;
10 
    
for
(
int
 i 
=
 
0
; s1[i] 
!=
 
'
\0
'
; i
++
)
11 
    {
12 
        
if
(s1[i] 
==
 
'
-
'
13 
        {
14 
            
char
 min 
=
 s1[i
-
1
+
 
1
;
15 
            
while
(s1[i
+
2
==
 
'
-
'
)
16 
                i 
+=
 
2
17 
            
char
 max 
=
 s1[i
+
1
-
 
1
;
18 
            
while
(min 
<=
 max)  
19 
                s2[j
++
=
 min
++
;
20 
        }
21 
        
else
 
22 
        {
23 
            s2[j
++
=
 s1[i];
24 
        }
25 
    }
26 
    s2[j] 
=
 
'
\0
'
;
27 
}
28 
29 
void
 Print(
char
 s[])
30 
{
31 
    
for
(
int
 i 
=
 
0
; s[i] 
!=
 
'
\0
'
; i
++
)
32 
    {
33 
        cout 
<<
 s[i];
34 
    }
35 
}
36 
37 
int
 main()
38 
{   
39 
    
char
 s1[
100
=
 {
"
a-b-c-da-b-c-da-b-c-d
"
};
40 
    
char
 s2[
500
];
41 
    Expand(s1, s2);
42 
    Print(s2);
43 
    cout 
<<
 endl;
44 
45 
    
return
 
0
;    
46 
}

 

 

转载于:https://www.cnblogs.com/ewee/archive/2010/07/26/1785398.html

你可能感兴趣的文章
Android打包 & Gradle用法
查看>>
NodeJS -Express 4.0 用include取代partial
查看>>
开发和研发-转载
查看>>
jni 步骤
查看>>
CSS——字体大小最常用的单位
查看>>
第五章 动画 50 动画-transition-group中appear和tag属性的作用
查看>>
杨辉三角
查看>>
文件上传
查看>>
Mysql主从同步(复制)
查看>>
SQL利用Case When Then多条件判断
查看>>
C++string类整理
查看>>
SqlBulkCopy 快速插入数据
查看>>
Entity Framework 三
查看>>
最近写了2套软件,WEB版的进销存管理系统,服装连锁店管理软件
查看>>
Android 调用已安装市场,进行软件评分的功能实现
查看>>
java中的String.format使用
查看>>
html active属性
查看>>
Maven MyBatis快速入门
查看>>
扩展方法:获取枚举的描述信息
查看>>
jquery笔记
查看>>