在不使用内置 sort() 的情况下按字母顺序对字符串中的字母进行排序

阿丽娜

函数sort必须对字符串中的字母进行排序。但是没有使用内置的 C++sort()函数!我尝试了不同的方法,但没有任何帮助。这是此函数中的参数。需要排序text(是否可以在不删除&之前进行此操作text?)此代码进入无限循环。

std::string TextUtility::sort(const std::string &text)
{
    string toSort = text;
    string sorted_str;

    int size = sizeof(toSort) / sizeof(char);

    for (int i = 0; i < size - 1; i++)
    {
        if (toSort[i] > toSort[i + 1])
        {
            int temp = toSort[i + 1];
            toSort[i + 1] = toSort[i];
            toSort[i] = temp;
            i = -1;
        }
    }

    for (int i = 0; i < toSort.size(); i++)
    {
        sorted_str += toSort[i];
    }

    cout << endl
         << "Sorted: " << sorted_str;

    return sorted_str;
}
SK编码器

清理后(见评论)这似乎工作得很好。

#include <string>
#include <iostream>

std::string sort(const std::string &text)
{
  std::string toSort = text;

  for (int i = 0; i < (int)(toSort.size()) - 1; i++)
  {
    if (toSort.at(i) > toSort.at(i + 1))
    {
      char temp = toSort.at(i + 1);
      toSort.at(i + 1) = toSort.at(i);
      toSort.at(i) = temp;
      i = -1;
    }
  }

  std::cout << "Sorted: " << toSort << std::endl;

  return toSort;
}

int main()
{
  sort("fgfghafbkgdbGHKGHjbkgfnvnbjb14563f");
  sort("X");
  sort("");
  return(0);
}

已排序:13456GGHHKabbbbbdfffffgggghjjkknnv

排序:X

排序:

顺便说一句:需要显式转换 (int)(toSort.size()),因为空字符串会破坏条件。至少在我的系统上,它会导致“i < size_t(-1)”,从而导致 std::out_of_range。也许类似的事情导致了你的无限循环?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不使用字符串或数组的情况下按升序对整数进行排序?

使用函数按字母顺序对字符串排序

在不使用Array.sort的情况下对多维字符串数组进行排序

使用Collections.sort()方法按字母顺序对对象进行排序

如何使用角度orderBy过滤器按字母顺序对字符串数组进行排序?

使用自定义排序顺序在Unix中对字母数字字符串进行排序

如何使用sql按字符串排序的字母顺序对单词进行排序

在不使用内置函数的情况下计算子字符串的出现

使用指针数组按字母顺序对字符串进行排序

如何使用sort方法按字母顺序对姓氏列表进行排序

如何使用基于域的列表按字母顺序对字符串数组进行排序

使用sort方法按字母顺序对数组进行排序

C ++:如何在不使用算法库中排序功能的情况下按字母顺序对字符串向量进行排序

如何使用sort_by按字母顺序然后按数字顺序然后按特殊字符排序

有没有办法在不使用python中的sort()的情况下对基于数字的数字进行排序?

如何在JavaScript中不使用内置sort()和atoi方法对字符串数据类型的数组进行排序

C-按字母顺序对字符串排序而不使用strcmp()

在不使用C#中内置函数的情况下计算字符串长度

在不使用比较器的情况下使用Array.sort()对数组进行排序

在不使用内置字符串函数的情况下提取字符之间的单词

如何使用 gulp-json-sort 插件按逆字母顺序对 json 进行排序

我想在不使用内置函数的情况下反转 javascript 中的字符串

如何在不使用内置 c# 方法的情况下反转字符串

如何仅使用代码中的 if 语句将字符串按正确的字母顺序排序?

如何选择对列表中的元组进行排序,以便在不使用 sorted 函数的情况下按逆字母顺序对元组进行排序

使用指针按字母顺序对字符串数组进行排序

尝试使用冒泡排序按字母顺序对字符串数组进行排序,但排序返回数组的反向

如何在不使用内置函数的情况下对字符串数组中的重复项进行排序和删除?

如何在不使用 OrderedDict 的情况下按字母顺序对嵌套字典进行键排序