Перевести на 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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