博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++程序设计实践指导1.14字符串交叉插入改写要求实现
阅读量:5061 次
发布时间:2019-06-12

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

改写要求:1:以指针为数据结构开辟存储空间

改写要求2:被插入字符串和插入字符串不等长,设计程序间隔插入 如被插入字符串长度为12,待插入字符串长度为5 则插入间隔为2

改写要求3:添加函数InsertInOrder() 先将被插入字符串中的字母按照ASCII表顺序排序 再将插入字符串插入并保证原来的字母顺序

#include <cstdlib>

#include <iostream>
#include <cstring>

using namespace std;

class STRING
{
char *str1;
char *str2;
public:
STRING(char* s1,char* s2)
{
str1=new char[strlen(s1)];
str2=new char[strlen(s2)];
strcpy(str1,s1);
strcpy(str2,s2);
}
void InsertInOrder();
void process();
void print()
{
cout<<str1<<endl;
}
};

void STRING::process()

{
int len1,len2,count=1;
char str[80];
int i,j=0,k=0;
len1=strlen(str1);
len2=strlen(str2);
int n=len2/len1;
for(i=0;i<len1+len2;i++)
{
if(count%(n+1)==0)
{
str[i]=str1[j++];
count++;
}else{
str[i]=str2[k++];
count++;
}

}

str[i]='\0';
cout<<str<<endl;
strcpy(str1,str);
}

void STRING::InsertInOrder()

{
char temp;
int i,j,k;
int len1=strlen(str1);
int len2=strlen(str2);
for(i=0;i<len2-1;i++)
{
k=i;
for(j=i+1;j<len2;j++)
if(str2[k]<str2[j])
{
k=j;
temp=str2[i];
str2[i]=str2[k];
str2[k]=temp;
}
}
cout<<str2<<endl;
for(i=0;i<len1;i++)
{
for(j=len2-1+i;j>=0;j--)
{
if(str1[i]>str2[j])
str2[j+1]=str2[j];
else
break;
}
str2[j+1]=str1[i];
}
cout<<str2<<endl;
}

int main(int argc, char *argv[])

{
STRING test("abcd","ABCDEFG");//这里第一个参数是插入字符串 第二个是被插入字符串 测试要保证第二个参数比第一个长 因为程序没有写对短的情形的处理
// test.InsertInOrder();
test.process();
test.print();
system("PAUSE");
return EXIT_SUCCESS;
}

改写要求2和3要分开运行即注释掉改写InsertInOrder()来测试改写要求2 否则会出现错误 这是由于这里是直接在str1和str2上修改

转载于:https://www.cnblogs.com/c5395348/p/4284986.html

你可能感兴趣的文章
mysql快捷命令
查看>>
Docker学习(1) 初识
查看>>
APP远程调试及网络自动化测试
查看>>
java文档注释规范(一)
查看>>
linux下查看所有用户及所有用户组
查看>>
python深度优先、广度优先和A star search
查看>>
PCIE USB 编码
查看>>
.net多线程
查看>>
翻译3
查看>>
reactnative图片排列
查看>>
Linux终端相关知识
查看>>
[Swift]LeetCode538. 把二叉搜索树转换为累加树 | Convert BST to Greater Tree
查看>>
拼接sql
查看>>
[GIF] Parenting in GIF Loop Coder
查看>>
vimium
查看>>
python基础之数据类型
查看>>
EntityManager方法简介
查看>>
codeforce 830A Office Keys
查看>>
错误:【No configuration found for the specified action: 'login.action' in namespace: " " 】
查看>>
C# 窗体间传值方法大汇总(转)
查看>>