程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++程序設計實踐指導1.14字符串交叉插入改寫要求實現,程序設計實踐1.14

C++程序設計實踐指導1.14字符串交叉插入改寫要求實現,程序設計實踐1.14

編輯:C++入門知識

C++程序設計實踐指導1.14字符串交叉插入改寫要求實現,程序設計實踐1.14


#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上修改

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved