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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
#1

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

02.11.2010, 00:01. Просмотров 1575. Ответов 9
Метки нет (Все метки)

Ребята помогите пожалуйста с прогой оч нужно, а то я сама не могу собразить полностью и как начать
Вот само задание:
"Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки."
Алгоритм действий понимаю, а вот записать не получается! Помогите кто может мне непонятливой, оч нужно, пожалуйста!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2010, 00:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки (C++):

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

Функция, которая копирует строку в другую строку заданное количество раз - C++
Помогите!!!! срочно нужна задача. Не знаю как сделать. Разработать функцию, которая копирует строку в другую строку заданное количество...

Даны две строки. Получить строку, в которой чередуются слова первой и второй строки - C++
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки. Если в одной из строк число слов больше, чем в...

Какая функция копирует содержимое строки f в строку t? - C++
Какая функция копирует содержимое строки f в строку t?

Приписать второе слово второй строки к первой, развернуть первую строку - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Приписать второе слово второй строки к первой. Поменять порядок следования...

Исключите из второй строки те символы, которые есть в первой, и выведите полученную строку на экра - C++
Помогите пожалуйста с заданием.:( Написать программу, которая считывает две строки символов, состоящие только из цифр и пробелов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
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;
}
1
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
02.11.2010, 21:44  [ТС] #3
Большое спасибо!!!!!!!!!!!)))))))))
А какие еще есть варианты решения ( на C++ )?
0
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;
1
PointsEqual
ниначмуроФ
835 / 519 / 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;
2
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
03.11.2010, 21:16  [ТС] #6
Спасибо всем за решения, но появилось новое условие к задачи программа пожно быть написана по такому агоритму:
1.Подсчитать количество символов в обеих строках
2. Создать строку на то копичество сколько подсчитано
3. Записать половину первой строки в результат
4. Записать вставляемую строку
5. Записать вторую половину

Пожалуста помогите его записать на С++! Зарание спасибо!
0
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");
}
1
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 ;
Как их исправит? Подскажите пожалуйста! Зарание спасибо!
0
Миниатюры
Функция копирует строку в другую строку заданой длины и помещает текст первой строки по центру второй строки  
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
10.11.2010, 17:45  [ТС] #9
Так может кто то знает в чем ошибка! Плиз оч надо!
0
vasim3
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
26.11.2010, 21:33  [ТС] #10
Приветик ребяточки! А могут быль еще какие то варианы решения этой задачи? Может кто знает напишите! Зарание спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2010, 21:33
Привет! Вот еще темы с ответами:

Ввести строку, создать вторую строку в два раза больше, в которую записать симболы первой строки - C++
Ввести с клавиатуры строку симболов (до 20 симболов), динамически создать вторую строку в два раза больше чем введенная первая строка, в...

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

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

Функция получает массив указателей на строки и возвращает строку в динамической памяти, содержащую объединенный текст из входных строк - C++
Функция получает массив указателей на строки и возвращает строку в динамической памяти, содержащую объединенный текст из входных строк.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.11.2010, 21:33
Ответ Создать тему
Опции темы

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