我发现这个题目都是用指针来解的,所以我想用数组也来搞一个,给像我这样的初学者们提供一点思路,代码如下。
#include <stdio.h>
int main()
{
int j,i;
char z,m,c[80];
printf("请输入需要处理的字符串:");
gets(c);
for(i=1;c[i]!='\0';i++)
if(c[i]>m)
{
m=c[i];
j=i;
}
for(;j>0;j--)
{
z=c[j];
c[j]=c[j-1];
c[j-1]=z;
}
printf("处理后的字符串为:");
puts(c);
}
解释:我们可以先用scanf函数获取字符串,存至c数组,然后用循环找出ASCII码值最大的字符,将其下标保存至j,最后再用for(;j>0;j--)使c[j]之前的都向后移动一个(与c[j]交换来实现),最后将数组puts输出。其实感觉也和那个指针的思路差不多。
效果图:
以上都是我的看法,可能会有些表述不对的地方,希望能够谅解且给出纠错,感谢观看!