■分离分隔符字符
▲主函数(cmain.cpp)
#include "jj.h"
int main()
{string a="aa+bb+cc+xx+yy+zz";int i,j;
for(i=1;i<=dec(a,"+")+1;i++)
cout<<dtxt(a, "+", i)<<endl;
cout<<endl;
a="dd";
for(i=1;i<=dec(a,"+")+1;i++)
cout<<dtxt(a, "+", i)<<endl;
cout<<endl;
a="dd bb cc ss";
for(i=1;i<=dec(a," ")+1;i++)
cout<<dtxt(a, " ", i)<<endl;
cout<<endl;
a="mm";
for(i=1;i<=dec(a," ")+1;i++)
cout<<dtxt(a, " ", i)<<endl;
system("pause");return 0;
}
▲函数头文件(jj.h)
#include <iostream>
#include <string>
using namespace std;
string mid1(string s,int a,int b);
string mid2(string s,int a,int b);
int defc(string s,string a,int n);
int dec(string s,string a);
int len(string s);
string dtxt(string s,string a,int n);
▲函数声明文件(jj.cpp)
#include "jj.h"
string mid1(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=b-1;i++)
c=c+s[i];
return c;
}
string mid2(string s,int a,int b)
{int i;string c;
for(i=a-1;i<=a-1+b-1;i++)
c=c+s[i];
return c;
}
int defc(string s,string a,int n)
{int i,j=0;
for(i=1;i<=s.length()-a.length()+1;i++)
{if(mid2(s,i,a.length())==a) j++;
if(j==n) break;}
return i;
}
int dec(string s,string a)
{int i,j=0;
for(i=1;i<=s.length()-a.length()+1;i++)
{if(mid2(s,i,a.length())==a) j++;}
return j;
}
int len(string s)
{return (s.length());}
string dtxt(string s,string a,int n)
{int j;j=dec(s,a);string r;
if (n==1)
if (j!=0) r=mid1(s,1,defc(s,a,1)-1); else r=s;
else if (n==j+1)
r=mid1(s, defc(s, a, j) + 1, len(s));
else
r=mid1(s, defc(s, a, n-1) + 1, defc(s, a, n) - 1);
return r;
}
2013年03月12日 11点03分
8