当前位置:   article > 正文

在字符串str中找到ASCII码值最大的字符,放在第一个位置上,顺序后移_c++中如何寻找字符串中ascii码最大的字符

c++中如何寻找字符串中ascii码最大的字符

    要求实现的功能:在字符串str中找出ASCII值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。

  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<assert.h>
  4. void
  5. FindMaxValue(char *pstr)
  6. {
  7. assert(pstr != NULL);
  8. char max,*q=pstr; //max最大字符(选择比较),q指向遍历一次字符串后得到的最大字符的位置。
  9. int i = 0;
  10. max = pstr[0];
  11. while (pstr[i]!='\0') //以非结束符为终止条件,遍历字符串。
  12. {
  13. if (max < pstr[i]) //max需要更新的情况。
  14. {
  15. max = pstr[i];
  16. q = pstr + i; //q指向当前的最大字符。
  17. }
  18. ++i; //循环下标+1。
  19. }
  20. while(q>pstr) //从最大位置开始向前逆序遍历,每次将前一个字符后移一位。
  21. {
  22. *q = *(q - 1);
  23. --q;
  24. }
  25. pstr[0] = max; //循环结束时,0号位置空余,将最大字符max放入。
  26. }
  27. int
  28. main()
  29. {
  30. char str[80] = {"ABCDEFGHaIJK"};
  31. printf("the orignal string:\n");
  32. puts(str);
  33. FindMaxValue(str);
  34. printf("the stirng after moving:\n");
  35. puts(str);
  36. }

本程序在VS2017下运行通过

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

闽ICP备14008679号