Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для VolodiaVoz
32 / 32 / 12
Регистрация: 17.11.2010
Сообщений: 140

Центрирование - расположение строки s1 посередине строки s2 длины L.

17.07.2011, 18:38. Показов 2815. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Центрирование - расположение строки s1 посередине строки s2 длины L. Свободные символы заполнить пробелы. Функция должна иметь вид void Center (L, s1, s2).
Нельзя использовать библиотеку <string.h> ...
Заранее спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.07.2011, 18:38
Ответы с готовыми решениями:

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки.
Если длина введенной строки нечетная, удалить символ, стоящий посередине строки. Помогите решить пожалуйста через Char можно если.

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки
Если длина введенной строки нечетная, удалить символ, стоящий посередине строки,задача по C# через string пожалуйста

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки
Если длина введенной строки нечетная, удалить символ, стоящий посередине строки. сделайте пожалуйста через string и если не будет...

7
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
17.07.2011, 19:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
using namespace std;
 
void center(int l, char* s1, char* s2)
{
    cout << s1 << endl;
    for(int i = 0; i < (strlen(s1)-strlen(s2))/2; i++)
        cout << " ";
    cout << s2 << endl; 
}
 
int main()
{
    int maxSize;
    cout << "Ââåäèòå äëèííó: ";
    cin >> maxSize;
    char* s1;
    char* s2;
    s1 = new char[maxSize];
    s2 = new char[maxSize];
    cout << "Ââåäèòå ïåðâóþ ñòðîêó: " << endl;
    cin >> s1;
    cout << "Ââåäèòå âòîðóþ ñòðîêó: " << endl;
    cin >> s2;
    center(maxSize, s1, s2);
    return 0;   
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
17.07.2011, 19:40
Не совсем по заданию, но наглядно...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
 
#define CONS_WIDTH 80
 
int mystrlen(const char * s){
    const char * p;
    
    for ( p = s; *p; ++p )
        ;
        
    return p - s;
}
 
char * mystrcat(char * dst, const char * src){
    char * ret = dst;
    
    while ( *dst )
        ++dst;
    while ( *dst++ = *src++ )
        ;
    
    return ret;
}
 
 
char * aligned(const char * s, int width){
    int slen, pos;
    static char tmp[BUFSIZ];
    
    pos = 0;
    if ( ( slen = mystrlen(s) ) < width )
        for ( ; pos < ( width - slen ) / 2; ++pos )
            tmp[pos] = ' ';
    tmp[pos] = '\0';
    
    return mystrcat(tmp, s);
}
 
int main(void){
    const char * s1 = "Morgen, morgen, nur nicht heute,";
    const char * s2 = "sagen alle faulen Leute!";
    const char * ast = "******************************************************************************";
    
    printf("%s\n", aligned(ast, CONS_WIDTH));
    printf("%s\n", aligned(s1, CONS_WIDTH));
    printf("%s\n", aligned(s2, CONS_WIDTH));
    printf("%s\n", aligned(ast, CONS_WIDTH));
    
    return 0;
}
0
 Аватар для VolodiaVoz
32 / 32 / 12
Регистрация: 17.11.2010
Сообщений: 140
17.07.2011, 19:52  [ТС]
Mayonez, но здесь мы используем функцию strlen () а она из библиотеки string.h а ее не надо использовать. Если бы это изменить было бы все правильно!
0
 Аватар для Mayonez
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
17.07.2011, 20:46
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
 
using namespace std;
 
int mystrlen(char* str)
{
    int i = 0;
    while(str[i]!='\0')
        i++;
    return i;   
}
 
void center(int l, char* s1, char* s2)
{
    cout << s1 << endl;
    for(int i = 0; i < (mystrlen(s1)-mystrlen(s2))/2; i++)
        cout << " ";
    cout << s2 << endl; 
}
 
int main()
{
    int maxSize;
    cout << "Ââåäèòå äëèííó: ";
    cin >> maxSize;
    char* s1;
    char* s2;
    s1 = new char[maxSize];
    s2 = new char[maxSize];
    cout << "Ââåäèòå ïåðâóþ ñòðîêó: " << endl;
    cin >> s1;
    cout << "Ââåäèòå âòîðóþ ñòðîêó: " << endl;
    cin >> s2;
    center(maxSize, s1, s2);
    return 0;   
}
так?
2
 Аватар для VolodiaVoz
32 / 32 / 12
Регистрация: 17.11.2010
Сообщений: 140
17.07.2011, 20:57  [ТС]
Да ето верно!!! Спасибо ти мне очен помог!
0
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
17.07.2011, 20:59
Мой вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
 
 
void   scenter(int len, const char*  s1, char*  s2) {
      int  sz = 0, i;
      const char* str =  s1;
      while( *str++)
           ++sz;
      for(i = 0; i < len / 2 - sz / 2; i++, ++s2)
           *s2 = ' ';
      while(*s1)
           *s2++ = *s1++;
      sz = len - (len / 2 + sz / 2);
      while(sz--)
           *s2++ = ' ';
      *s2 = '\0';
}
 
 
void   main(void) {
 
    char str[19];     // указываем на один больше + '\0'
    int    len = 18;
 
    scenter(len,  "ATOM", str);
    puts(str);
 
    getchar();
}
1
 Аватар для VolodiaVoz
32 / 32 / 12
Регистрация: 17.11.2010
Сообщений: 140
17.07.2011, 21:09  [ТС]
Тоже не плохо!!!

У меня еще одна программка по строковых переменных:
Установка L символов строки s в значение t, начиная с позиции n. Функция StrSet (s, n, L, t).
Также не использовать библиотеку <string.h> это важно!
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.07.2011, 21:09
Помогаю со студенческими работами здесь

Если длина введенной строки нечетная, удалить символ, стоящий посередине строки
помогите перевести с Си на паскаль. using System; using System.Collections.Generic; using System.Linq; namespace first { ...

Определить длину введённой строки, если длина нечётная ,то удаляется символ, стоящий посередине строки
Вывести с клавиатуры строку символ.Признак окончания ввода строки-нажатие клавиши &quot;ввод&quot;. Программа должна определить длину...

Ошибки (в файле содержатся строки разной длины - записать их в выходной файл в порядке возрастания длины строки)
#include &lt;iostream&gt; #include &lt;set&gt; #include &lt;iterator&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; int main()...

Получить последовательность содержащую строки из A длины L1 и все строки из B длины L2 (используя LINQ)
Даны целые положительные числа L1 и L2 и строковые последовательности A и B. Строки последовательностей содержат только цифры и...

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки.


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru