当前位置:   article > 正文

在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH。_在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序

在一个字符串中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序

我发现这个题目都是用指针来解的,所以我想用数组也来搞一个,给像我这样的初学者们提供一点思路,代码如下。

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int j,i;
  5. char z,m,c[80];
  6. printf("请输入需要处理的字符串:");
  7. gets(c);
  8. for(i=1;c[i]!='\0';i++)
  9. if(c[i]>m)
  10. {
  11. m=c[i];
  12. j=i;
  13. }
  14. for(;j>0;j--)
  15. {
  16. z=c[j];
  17. c[j]=c[j-1];
  18. c[j-1]=z;
  19. }
  20. printf("处理后的字符串为:");
  21. puts(c);
  22. }

解释:我们可以先用scanf函数获取字符串,存至c数组,然后用循环找出ASCII码值最大的字符,将其下标保存至j,最后再用for(;j>0;j--)使c[j]之前的都向后移动一个(与c[j]交换来实现),最后将数组puts输出。其实感觉也和那个指针的思路差不多。

效果图:

以上都是我的看法,可能会有些表述不对的地方,希望能够谅解且给出纠错,感谢观看!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/310064
推荐阅读
相关标签
  

闽ICP备14008679号