Рубрики

Разделите строку на N равных частей

Уровень сложности: Новичок

Вопрос:
Напишите программу для печати N равных частей данной строки.

Решение:
1) Получить размер строки, используя строковую функцию strlen () (присутствует в string.h)
2) Получить размер детали.

  
     part_size = string_length/n 

3) Цикл по входной строке. В цикле, если индекс становится кратным part_size, поместите разделитель частей («/ n»)

Реализация:

C ++

// C ++ программа для разделения строки
// в п равных частей
#include<iostream>
#include<string.h>

  

using namespace std;

  

class gfg

{

  
// Функция для печати n равных частей строки

public

void divideString(char str[], int n)

{

      

    int str_size = strlen(str);

    int i;

    int part_size;

  

    // Проверяем, можно ли разделить строку на

    // n равных частей

    if (str_size % n != 0)

    {

        cout<<"Invalid Input: String size";

        cout<<" is not divisible by n";

        return;

    }

  

    // Рассчитать размер деталей до

    // найти точки деления

    part_size = str_size / n;

    for (i = 0; i< str_size; i++)

    {

        if (i % part_size == 0)

            cout<<endl; 

        cout<< str[i];

    }

}
};

  
// Код драйвера

int main()

{

    gfg g;

      

    // длина строки 28

    char str[] = "a_simple_divide_string_quest";

  

    // Вывести 4 равных части строки

    g.divideString(str, 4);

    return 0;

}

  
// Этот код предоставлен SoM15242

С

// C программа для разделения строки
// в п равных частей
#include<stdio.h>
#include<string.h>

  
// Функция для печати n равных частей строки

void divideString(char *str, int n)

{

int str_size = strlen(str);

int i;

int part_size;

  
// Проверяем, можно ли разделить строку на
// n равных частей

if (str_size % n != 0)

{

    printf("Invalid Input: String size");

    printf(" is not divisible by n");

    return;

}

  
// Рассчитать размер деталей до
// найти точки деления
part_size = str_size / n;

for (i = 0; i< str_size; i++)

{

    if (i % part_size == 0)

        printf("\n"); 

    printf("%c", str[i]);

}
}

  

int main()

{

    // длина строки 28

    char *str = "a_simple_divide_string_quest";

  

    // Вывести 4 равных части строки

    divideString(str, 4);

  

    getchar();

    return 0;

}

Джава

// Java-программа для разделения строки
// в п равных частей

  

class GFG 

{

    // Метод для печати n равных частей строки

    static void divideString(String str, int n)

    {

    int str_size = str.length();

    int part_size;

      

    // Проверяем, можно ли разделить строку на

    // n равных частей

    if (str_size % n != 0)

    {

        System.out.println("Invalid Input: String size" +

                                "is not divisible by n");

        return;

    }

      

    // Рассчитать размер найденных деталей

    // точки деления

    part_size = str_size / n;

          

    for (int i = 0; i< str_size; i++)

    {

        if(i % part_size == 0)

            System.out.println(); 

        System.out.print(str.charAt(i));

    }

    }

      

    // Код драйвера

    public static void main(String[] args)

    {

        // длина строки 28

        String str = "a_simple_divide_string_quest";

      

        // Вывести 4 равных части строки

        divideString(str, 4);

    }

}

питон

# Программа Python для печати n равных частей строки

  
# Функция для печати n равных частей строки

def divideString(string, n):

    str_size = len(string)

  

    # Проверьте, можно ли разделить строку на n равных частей

    if str_size % n != 0:

        print "Invalid Input: String size is not divisible by n"

        return

  

    # Рассчитать размер деталей, чтобы найти точки деления

    part_size = str_size/n

    k = 0

    for i in string:

        if k%part_size==0:

            print "\n",

        print i,

        k += 1

  
# Драйвер программы для проверки вышеуказанной функции
# Длина строки 28

string = "a_simple_divide_string_quest"

  
# Вывести 4 равные части строки

divideString(string, 4)

  
# Этот код предоставлен Bhavya Jain

C #

// C # программа для разделения строки
// в п равных частей

using System;

  

class GFG {

      
// Способ для печати n
// равные части ул

static void divideString(String str,

                         int n)

{

    int str_size = str.Length;

    int part_size;

      

    // Проверка строки

    // можно разделить на

    // n равных частей

    if (str_size % n != 0)

    {

        Console.Write("Invalid Input: String size" +

                      "is not divisible by n");

        return;

    }

      

    // Рассчитать размер

    // частей для поиска

    // точки деления

    part_size = str_size / n;

          

    for (int i = 0; i< str_size; i++)

    {

        if(i % part_size == 0)

            Console.WriteLine(); 

        Console.Write(str[i]);

    }

    }

      

    // Код драйвера

    static void Main() 

    {

          

        // длина строки 28

        String str = "a_simple_divide_string_quest";

      

        // Вывести 4 равных части строки

        divideString(str, 4);

    }

}

  
// Этот код предоставлен Anuj_67

PHP

<?php
// PHP-программа для разделения строки
// в п равных частей

  
// Функция для печати n
// равные части ул

function divideString($str, $n)

{

    $str_size = strlen($str);

    $i;

    $part_size;

  
// Проверяем, можно ли разделить строку
// в п равных частей

if ($str_size % $n != 0)

{

    echo "Invalid Input: String size";

    echo " is not divisible by n";

    return;

}

  
// Рассчитать размер деталей до
// найти точку деления

$part_size = $str_size / $n;

for ($i = 0; $i< $str_size; $i++)

{

    if ($i % $part_size == 0)

        echo "\n"

    echo $str[$i];

}
}

  

    // Код драйвера

    // длина строки 28

    $str = "a_simple_divide_string_quest";

  

    // Вывести 4 равных части строки

    divideString($str, 4);

  
// Этот код предоставлен ajit.
?>


Выход:

a_simpl
e_divid
e_strin
g_quest

В приведенном выше решении, n равных частей строки только печатаются. Если мы хотим, чтобы отдельные части были сохранены, нам нужно выделить part_size + 1 память для всех N частей (1 дополнительная для символа завершения строки '/ 0') и сохранить адреса частей в массиве символьных указателей.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Разделите строку на N равных частей

0.00 (0%) 0 votes