Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Christi7
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 9
#1

Выравнивание строки s слева к длине m - C++

03.11.2015, 22:47. Просмотров 261. Ответов 14
Метки нет (Все метки)

Выравнивание строки s слева к длине m. Left (s,m). C помощью функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 22:47     Выравнивание строки s слева к длине m
Посмотрите здесь:

Выравнивание строки C++
C++ Необходимо изменить строку так, чтобы длина строки стала равна заданной длине
C++ Сортировка строки по длине слова
Одну строку инициализировать в программе, другую-ввести с клавиатуры. Сравнить данные строки по длине. C++
C++ Определить строки в файле, содержащие максимальную по длине подстроку-палиндром
Выравнивание строки по левому краю до заданной длины C++
C++ Упорядочить текст по длине строки по убыванию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4872 / 3011 / 370
Регистрация: 10.11.2010
Сообщений: 11,061
Записей в блоге: 10
Завершенные тесты: 1
03.11.2015, 22:54     Выравнивание строки s слева к длине m #2
А с помощью метода подойдёт?
gru74ik
Модератор
Эксперт CЭксперт С++
3887 / 1645 / 188
Регистрация: 20.02.2013
Сообщений: 4,695
Записей в блоге: 21
03.11.2015, 23:06     Выравнивание строки s слева к длине m #3
Цитата Сообщение от castaway Посмотреть сообщение
с помощью метода
Ереееееетик!

castaway
03.11.2015, 23:16
  #4

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Ереееееетик!
Я всего то хотел предложить воспользоваться методами объекта класса std::ostream А ты меня сказу к болоболам причислил))

Kastaneda
03.11.2015, 23:18
  #5

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
методами объекта класса
думаю имелось ввиду, что методы в ООП языках, в С++ у нас функции-члены

0x0152
31 / 31 / 8
Регистрация: 23.03.2015
Сообщений: 210
03.11.2015, 23:34     Выравнивание строки s слева к длине m #6
Цитата Сообщение от Christi7 Посмотреть сообщение
Выравнивание строки s слева к длине m
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#define _CHAR '0' 
void Left(char** s,int m){
    int size = strlen(*s) + m + 1;
    char* buffer = new char[size];
    memset(buffer, 0, size);
 
    for (int i = 0; i < m; i++){
        buffer[i] = _CHAR;
    }
 
    strcat_s(buffer, size, *s);
    *s = buffer;
}
castaway
03.11.2015, 23:37
  #7

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
... что методы в ООП языках, в С++ у нас функции-члены
Ну давай хоть холивар не будем начинать

Croessmah
04.11.2015, 00:31
  #8

Не по теме:

Цитата Сообщение от Christi7 Посмотреть сообщение
Кто может написать код ?
Не, это за гранью

gromo
04.11.2015, 02:37
  #9

Не по теме:

Цитата Сообщение от 0x0152 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
#define _CHAR '0' 
void Left(char** s,int m){
int size = strlen(*s) + m + 1;
char* buffer = new char[size];
memset(buffer, 0, size);
for (int i = 0; i < m; i++){
 buffer[i] = _CHAR;
 }
strcat_s(buffer, size, *s);
 *s = buffer;
}
Вот посмотрит новичок на такой код, и уразумеет, что именно так и надо писать. Зачем выкладывать такие куски адового безобразия?..
P.s. Критическая концентрация оффтопа на тред2

Kerry_Jr
Модератор
Эксперт PHP
2122 / 1918 / 666
Регистрация: 14.05.2014
Сообщений: 5,616
Записей в блоге: 1
Завершенные тесты: 5
04.11.2015, 02:43     Выравнивание строки s слева к длине m #10
Цитата Сообщение от gromo Посмотреть сообщение
C++
1
2
3
4
5
char* buffer = new char[size];
memset(buffer, 0, size);
for (int i = 0; i < m; i++){
*buffer[i] = _CHAR;
*}
5 против 1
C++
1
char* buffer = new char[size]();
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
04.11.2015, 02:49     Выравнивание строки s слева к длине m #11
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
5 против 1
Не говоря уже про мешанину обычных и `_s` функций, возможную утечку памяти, зачем-то введенную директиву для единственного обращения к '\0' и кристальное оформление этой локальной кучки кодеца
gru74ik
04.11.2015, 10:38
  #12

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
методы в ООП языках, в С++ у нас функции-члены
дооооооо

0x0152
31 / 31 / 8
Регистрация: 23.03.2015
Сообщений: 210
04.11.2015, 13:18     Выравнивание строки s слева к длине m #13
Цитата Сообщение от gromo Посмотреть сообщение
Зачем выкладывать такие куски адового безобразия?..
Чтобы вы поправили и указали на ошибки

Добавлено через 23 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
void Left(char** s,int m){
    int size = strlen(*s) + m + 1;
    char* buffer = new char[size]();
 
    for (int i = 0; i < m; i++){
        buffer[i] = '0';
    }
 
    strcat_s(buffer, size, *s);
    *s = buffer;
}
Где еще ошибки?

Добавлено через 4 минуты
Цитата Сообщение от gromo Посмотреть сообщение
возможную утечку памяти
Не подскажите где?

Добавлено через 6 минут
Цитата Сообщение от gromo Посмотреть сообщение
введенную директиву для единственного обращения к '\0'
Не к \0. Он не указал чем заполнить выделенную область, поэтому я и решил вывести знак в директиву, чтобы он сам указал.

Добавлено через 1 минуту
Цитата Сообщение от gromo Посмотреть сообщение
кристальное оформление этой локальной кучки кодеца
Тут в чем проблема?
Kerry_Jr
Модератор
Эксперт PHP
2122 / 1918 / 666
Регистрация: 14.05.2014
Сообщений: 5,616
Записей в блоге: 1
Завершенные тесты: 5
04.11.2015, 13:22     Выравнивание строки s слева к длине m #14
удалите, пожалуйста.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2015, 13:37     Выравнивание строки s слева к длине m
Еще ссылки по теме:

Составить программу сортировки массива строк по длине строки C++
Составить программу сортировки массива строк по длине строки C++
Строки. Нужно дополнить строку нулями слева C++
Выравнивание строки по правому краю до заданной длины C++
Выравнивание строки s слева к длине m. Left (s,m) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
0x0152
31 / 31 / 8
Регистрация: 23.03.2015
Сообщений: 210
04.11.2015, 13:37     Выравнивание строки s слева к длине m #15
[QUOTE]
char* buffer = new char[size](); // здесь уже все нулевые символы расставлены
for (int i = 0; i < m; i++){ // зачем
buffer[i] = '0'; // этот
} // цикл
Как говорится, что в лоб, что по лбу, что о стенку гороховый суп.
введенную директиву для единственного обращения к '\0'
Не к \0. Он не указал чем заполнить выделенную область, поэтому я и решил вывести знак в директиву, чтобы он сам указал.
Yandex
Объявления
04.11.2015, 13:37     Выравнивание строки s слева к длине m
Ответ Создать тему
Опции темы

Текущее время: 11:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru