image.png

    1. #include <iostream>
    2. #include <string>
    3. //用到了向量容器,把它理解成动态数组
    4. #include <vector>
    5. using namespace std;
    6. string str_sort(string str)
    7. {
    8. //字符向量的声明
    9. vector <char> vec;
    10. //把字符串中的字母按字母检索出来并存在向量中
    11. for(int j = 0;j<26;j++)
    12. {
    13. for(int i = 0;i<str.size();i++)
    14. {
    15. if(str[i]=='a'+j||str[i]=='A'+j)
    16. {
    17. vec.push_back(str[i]);
    18. }
    19. }
    20. }
    21. //保留原字符串中非字母元素,将字母元素按照向量表中顺序填入
    22. int num = 0;
    23. for(int i = 0;i<str.size();i++)
    24. {
    25. if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
    26. {
    27. str[i] = vec[num];
    28. num++;
    29. }
    30. }
    31. return str;
    32. }
    33. int main()
    34. {
    35. string str;
    36. //注意通过这个函数可以读取一行输入
    37. while(getline(cin,str))
    38. {
    39. cout << str_sort(str) << endl;
    40. }
    41. return 0;
    42. }