Перевести на C# программу вставки между словами пробелов

Узнай цену своей работы

Формулировка задачи:

Дана строка текста, в котором нет начальных и конечных пробелов. Необходимо изменить ее так, чтобы длина строки стала равна заданной длине (предполагается, что требуемая длина не меньше исходной). Это следует сделать путем вставки между словами дополнительных пробелов. Количество пробелов между отдельными словами должно отличаться не более чем на один.
#include <iostream>
#include <string>
 
void addWS(std::string& s, int reqLen){
    std::string::size_type ind=0;
    while(s.size()<reqLen&&(ind=s.find(' ', ind))!=std::string::npos){
        s.insert(ind, " ");
        while(s[ind]==' ')++ind;
    }
    if(s.size()<reqLen) addWS(s, reqLen);
}
 
int main(){
    std::string s="a b c d";
    int reqLen;
    std::cout<<"Input length (must be greater than "<<s.size()<<")\n";
    std::cin>>reqLen;
    addWS(s, reqLen);
    std::cout<<s<<"\n";
}

Решение задачи: «Перевести на C# программу вставки между словами пробелов»

textual
Листинг программы
public static void Main()
{
    var s = "a b c d";
    Console.WriteLine("Input length (must be greater than " + s.Length);
    int reqLen = int.Parse(Console.ReadLine());
    s = AddWS(s, reqLen);
    Console.WriteLine(s);
}
 
private static string AddWS(string s, int reqLen)
{
    int ind = 0;
    while (s.Length < reqLen && (ind = s.IndexOf(" ", ind, StringComparison.InvariantCulture)) != -1)
    {
        s = s.Insert(ind, " ");
        while (s[ind] == ' ') ++ind;
    }
    if (s.Length < reqLen) return AddWS(s, reqLen);
    return s;
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы