如题 急急急。。。。。。。。。
达人指点
/*
**从键盘输入字符串a,并在a串中的最大元素后边插入字符串b(b[ ]=”ab”),试编程
*/
#include <stdio.h>
#include <malloc.h>
#define NAMESIZE 100
char *MALLOC(int i);
char *GetString(int i);
char *InSert(char *name,int i);
char *MALLOC(int i)
{
char *ch;
ch=(char *)malloc(sizeof(char)*i);
if(ch==NULL)
{
fprintf(stderr," malloc() is not success!\n");
exit(1);
}
return ch;
}
char *GetString(int i)
{
int a;
char *p;
a=getchar();
if(a=='\n'||a==EOF)
{
p=MALLOC(i);
*(p+i-1)='\0';
return p;
}
else
{
p=GetString(i+1);
}
*(p+i-1)=a;
return p;
}
int Max(char *name)
{
int i=0,j=0;
char a=*name;
;
while(*(name+i)!='\0')
{
if(*(name+i)>a)
{
a=*(name+i);
j=i;
}
++i;
}
return j;
}
char * InSert(char *name,int i)
{
int k;
k=strlen(name);
name=(char *)realloc(name,sizeof(char)*(k+3));
while(k>i)
{
*(name+k+2)=*(name+k);
k--;
}
*(name+k+1)='a';
*(name+k+2)='b';
return name;
}
int main(void)
{
char *name;
int i=1;
int pos;
name=GetString(i);
printf("%s\n",name);
pos=Max(name);
name=InSert(name,pos);
printf("\n\n%s\n",name);
free(name);
return 0;
}