找出 ASCLL 最大值字符放在第一位,并把该字符前的原字符向后顺序移动,运行无结果,问题出在哪儿?
#include <stdio.h>void main()
{
void can(char *p);
char str[100];
printf("输入一段字符串:\n");
gets(str);
can(str);
}
void can(char *p)
{
int i=0,k;
char s1[100];
for(k=1;p[k]!='\0';k++)
{
if(p[i]<p[k])
{
i=k;
}
}
s1[0]=p[k];
for(i=0;i<k;i++)
{
s1[i+1]=p[i];
}
while(p[k]!='\0')
{
s1[k++]=p[k++];
}
s1[k++]= '\0';
printf("输出新字符串:%s\n",s1);
}