2 回答
TA贡献1871条经验 获得超8个赞
我亲手写的。
#include<stdio.h>
#include<stdlib.h>
int get_len(char *);
void rp_last(char* , char* , char* );
int get_len(char* str)
{
if(str == NULL) return -1;
int i;
for(i=0;str[i];i++);
return i;
}
void rp_last(char *s,char *sub1,char *sub2){
int i,j;
int k;
int sLen;
int sub1Len;
int sub2Len;
sLen=get_len(s);
sub1Len=get_len(sub1);
sub2Len=get_len(sub2);
for(i=sLen-1;i>=0;i--)
{
for(j=sub1Len-1,k=i;j>=0&&k>=0;j--,k--)
if(s[k]!=sub1[j]) break;
if(j<0) break;
}
//printf("%d\n",i);
if(j>=0)
printf("not found!\n");
else if(sub1Len>sub2Len)
{
k=sub1Len-sub2Len;
for(j=i+1;s[j-k]=s[j];j++);
for(j=sub2Len-1;j>=0;j--,i--)
s[i-k]=sub2[j];
}
else{
k=sub1Len-sub2Len;
s[k+sLen]='\0';
for(j=sLen-1;j>i;j--)
s[j+k]=s[j];
for(j=sub2Len-1;j>=0;j--,i--)
s[i+k]=sub2[j];
}
printf("result:%s\n",s);
return ;
}
void main()
{
char s[256];
char sub1[100];
char sub2[100];
printf("s :");gets(s);
printf("sub1:");gets(sub1);
printf("sub2:");gets(sub2);
rp_last(s,sub1,sub2);
return ;
}
TA贡献1898条经验 获得超8个赞
#include<iostream.h>
void sort(int a[],int n) //升序
{
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
void main()
{
int a[10];
for(int i=0;i<10;i++)
cin>>a[i];
sort(a,10);
cout<<"after sorted,the array is:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
- 2 回答
- 0 关注
- 175 浏览
添加回答
举报