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

Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
02.11.2010, 00:01     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #1
Ребята помогите пожалуйста с прогой оч нужно, а то я сама не могу собразить полностью и как начать
Вот само задание:
"Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки."
Алгоритм действий понимаю, а вот записать не получается! Помогите кто может мне непонятливой, оч нужно, пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2010, 00:01     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки
Посмотрите здесь:

функция, которая копирует строку в другую строку заданное количество раз C++
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки C++
C++ Какая функция копирует содержимое строки f в строку t?
C++ Исключите из второй строки те символы, которые есть в первой, и выведите полученную строку на экра
Функция получает массив указателей на строки и возвращает строку в динамической памяти, содержащую объединенный текст из входных строк C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
02.11.2010, 12:02     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #2
C
1
2
3
4
5
6
7
8
9
10
11
bool F(char *sour, char *targ, int lent)
// sour - исходная строка, targ - целевая строка, lent - ее длина
{ int lens;
    lens = strlen(sour);
    if (lens >= lent) return false;  // не получается
    memset(targ, ' ', lent-1);  // заполняем targ пробелами
    targ[lent-1] = '\0';
    k = (lent-lens) / 2;
    memcpy(targ+k, sour, lens); // последний штрих
    return true;
}
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
02.11.2010, 21:44  [ТС]     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #3
Большое спасибо!!!!!!!!!!!)))))))))
А какие еще есть варианты решения ( на C++ )?
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
02.11.2010, 22:58     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #4
Может я что-то недопонял?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstring>
 using namespace std;
 
 void Func(char src[6], char target[15])
 {
int len = strlen(src);
strcpy(target,src); // копируем исходную строку в результат (string)
target[len/2] = '\0'; // половину обрезаем (str)
strcat(target,src); // присоединяем к результату исходную строку(strstring)
char * pch = src+(len/2); // это указатель на вторую половину исходной строки(ing)
strcat(target,pch); // присоединяем эту половинку (strstringing)
 }
 
int main() {
char src[] = "string", target[15];
Func(src,target);
puts(target);
 
   system("pause");
   return 0;
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
02.11.2010, 23:08     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #5
Цитата Сообщение от vasim3 Посмотреть сообщение
А какие еще есть варианты решения ( на C++ )?
C++
1
2
3
4
5
    string a("0123456789");
    cout<<a;
    string b("abc");
    a.insert(a.size()/2,b);
    cout<<endl<<a;
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
03.11.2010, 21:16  [ТС]     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #6
Спасибо всем за решения, но появилось новое условие к задачи программа пожно быть написана по такому агоритму:
1.Подсчитать количество символов в обеих строках
2. Создать строку на то копичество сколько подсчитано
3. Записать половину первой строки в результат
4. Записать вставляемую строку
5. Записать вторую половину

Пожалуста помогите его записать на С++! Зарание спасибо!
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
03.11.2010, 21:21     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 using namespace std;
 
int main()
{
   char str1[] = "Hello world";
   char str2[] = ",beautiful";
 
   int len1 = strlen(str1); // длина str1(11)
   int len2 = strlen(str2); // длина str2(10)
char * str3 = new char[len1+len2]; // новая динамическая строка
strncpy(str3,str1,len1/2); // коппируем в str3 первую половинку str1
str3[len1/2] = '\0'; // обрываем строку после 5-го символа(Hello)
strcat(str3,str2); // присоединяем к Hello ,beautiful
str3[(len1/2)+len2] = '\0'; // обрываем строку после beautiful
char * p = str1+(len1/2); // указатель указывает на вторую половину str1(world)
strcat(str3,p); // присоединяем слово world к результату
puts(str3);
        
    system("pause");
}
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
04.11.2010, 20:35  [ТС]     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #8
Цитата Сообщение от NikolaWhite Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 using namespace std;
 
int main()
{
   char str1[] = "Hello world";
   char str2[] = ",beautiful";
 
   int len1 = strlen(str1); // длина str1(11)
   int len2 = strlen(str2); // длина str2(10)
char * str3 = new char[len1+len2]; // новая динамическая строка
strncpy(str3,str1,len1/2); // коппируем в str3 первую половинку str1
str3[len1/2] = '\0'; // обрываем строку после 5-го символа(Hello)
strcat(str3,str2); // присоединяем к Hello ,beautiful
str3[(len1/2)+len2] = '\0'; // обрываем строку после beautiful
char * p = str1+(len1/2); // указатель указывает на вторую половину str1(world)
strcat(str3,p); // присоединяем слово world к результату
puts(str3);
        
    system("pause");
}
При компиляции выдает какие ошибки:
Info :Compiling C:\Documents and Settings\Администратор\Рабочий стол\NONAME00.CPP
Error: NONAME00.CPP(3,16):Namespace name expected
Error: NONAME00.CPP(19,6):Call to undefined function 'puts'
Error: NONAME00.CPP(21,16):Statement missing ;
Как их исправит? Подскажите пожалуйста! Зарание спасибо!
Миниатюры
Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки  
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
10.11.2010, 17:45  [ТС]     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #9
Так может кто то знает в чем ошибка! Плиз оч надо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2010, 21:33     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки
Еще ссылки по теме:

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней C++
Ввести строку, создать вторую строку в два раза больше, в которую записать симболы первой строки C++
C++ Разместить текст первой строки по центру второй строки

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

Или воспользуйтесь поиском по форуму:
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
26.11.2010, 21:33  [ТС]     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки #10
Приветик ребяточки! А могут быль еще какие то варианы решения этой задачи? Может кто знает напишите! Зарание спасибо!
Yandex
Объявления
26.11.2010, 21:33     Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки
Ответ Создать тему
Опции темы

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