Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.12.2011, 12:25   #1
Luchia
 
Регистрация: 08.12.2011
Сообщений: 8
По умолчанию Разделить строку символов на n группы

Дана строка символов String.Разделить её на группы по n символов.n вводится с клавиатуры.Переставить символы в каждой группе в обратном порядке.Результаты поместить в ту же строку.
N=5
hello world
olleh dlrow
Luchia вне форума
Старый 08.12.2011, 13:15   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

В приведенном примере неправильно проведено преобразование. В строке 11 символов( пробел тоже символ). По-моему должно получиться так:
Цитата:
ollehlrow d
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума
Старый 08.12.2011, 13:17   #3
Luchia
 
Регистрация: 08.12.2011
Сообщений: 8
По умолчанию

Вопрос в том как это сделать!
Luchia вне форума
Старый 08.12.2011, 13:31   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Вопрос в том что Вы готовы сделать? Выкладывайте наработки, тогда будет помощь, если не хотите, то Вам в раздел фриланс.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума
Старый 09.12.2011, 20:39   #5
Игорь Бойко
Новичок
Джуниор
 
Регистрация: 09.12.2011
Сообщений: 1
По умолчанию

Вроде так:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите строку.");
            string myString = Console.ReadLine();
            int length = myString.Length;
            Console.WriteLine("Введите n.");
            int n = int.Parse(Console.ReadLine());
            char[] arrayOfSimbols = myString.ToCharArray();
            myString = "";
            for (int i = 0; i < length / n; i++)
            {
                foreach (char c in arrayOfSimbols.Skip(i * n).Take(n).Reverse().ToArray())
                    myString += c;
            }
            /*Как поступать с остатком не говориться, 
            поэтому просто добавлю в конец.*/
            foreach (char c in arrayOfSimbols.Skip(arrayOfSimbols.Count() - arrayOfSimbols.Count() % n).ToArray())
                myString += c;
            Console.WriteLine(myString);
            Console.ReadKey();
        }
    }
}

Последний раз редактировалось Игорь Бойко; 09.12.2011 в 22:16.
Игорь Бойко вне форума
Старый 11.12.2011, 20:02   #6
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;

static class StringExtensions
{
    public static IEnumerable<String> SplitInParts(this String s, Int32 partLength)
    {
        if (s == null)
            throw new ArgumentNullException("s");
        if (partLength <= 0)
            throw new ArgumentException("Part length has to be positive.", "partLength");
        for (var i = 0; i < s.Length; i += partLength)
            yield return s.Substring(i, Math.Min(partLength, s.Length - i));
    }
}

class Program
{
    static void Main(string[] args)
    {
        Console.Write("Введите строку: ");
        string s = Console.ReadLine();
        Console.Write("Длина блока: ");
        int n = int.Parse(Console.ReadLine());
        string[] e = (from str in s.SplitInParts(n)
                      select new string(str.Reverse().ToArray())).ToArray();
        s = string.Concat(e);
        Console.WriteLine(s);
        Console.ReadKey(true);
    }
}
Расширяющий метод взял на stackoverflow.com
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума
Старый 14.12.2011, 14:47   #7
Luchia
 
Регистрация: 08.12.2011
Сообщений: 8
По умолчанию

спасибо большое)))вы очень помогли)
Luchia вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделить строку Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 20.02.2011 19:25
Разделить строку DKENT Общие вопросы Delphi 6 12.02.2011 02:04
Группы символов, состоящие только из латинских букв, если первая буква группы входит в нее еще только оди Ela Помощь студентам 0 29.04.2010 13:41
Программа Вводит символьную строку и число N и выводит строку, состоящую из первых N символов (С++) Yulai Помощь студентам 1 11.05.2009 11:39
как разделить данные на две группы по частоте встречаемости параметра e_khomchenko Microsoft Office Excel 9 05.02.2008 20:34