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

Вставить в строку 1 содержимое строки 2 (#C) <String.h> - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 18:44     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #1
Задание:
Ввести две символьных строки. Выполнить вставку второй строки в первую, с позиции, введенной с клавиатуры.

Нашёл тут у нас много полезностей, но не удалось собрать программу... Помогите.

C++
1
2
3
4
5
6
7
8
9
10
char * insertSTR(char *str1, char *str2, int n)
{
  int newSize = strlen(str1)+strlen(str2);
  char *newStr = new char[newSize];
  memset(newStr, '\0', newSize);
  strncpy(newStr, str1, n);
  strcat(newStr, str2);
  strcat(newStr, str1 + n);
}
return newStr;
Я решил эту задару без помощи библиотеки <string>

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
#include <stdio.h>                      /*Подклячение стандартной библиотеки ввода-вывода*/
#include <string.h>                     /*Подключение библиотеки работы со строками*/
 
int main(void)                          /*Вход в программу*/
{
int a, b, n, i, k, kolsim1, kolsim2;    /*Иницилизация данныйх*/
char str1[80];                          /*Иницилизация данныйх*/
char str2[80];                          /*Иницилизация данныйх*/
char buf[160];                          /*Иницилизация данныйх*/
printf ("Vvedite pervuy stroku \n");    /*Вывод строки на экран*/ 
scanf("%s", str1);                      /*Ввод символов с клавиатуры в память*/
printf ("Vvedite vtoruy stroku \n");    /*Вывод строки на экран*/
scanf("%s", str2);                      /*Ввод символов с клавиатуры в память*/
kolsim1=strlen(str1);                   /*Получение количества символов в строке*/
kolsim2=strlen(str2);                   /*Получение количества символов в строке*/
a=kolsim1+kolsim2;                      /*Получение количества всех введенных символов*/
b=-1;                                   /*Присваивание значения переменной, для правильного*/
                                        /*формирования счетчика*/
printf ("Vvedite pozitciu n: \n");      /*Вывод строки на экран*/
scanf("%0d", &n);                       /*Ввод символов с клавиатуры в память*/
if (n<=kolsim1)                         /*Проверка правильности введенных данных*/
    {
    for(i=0;i<n;i++)                    /*Цикл заполнения буферного массива элементами, из первой*/
        {                               /*строки*/
        b=b+1;                          /*Увеличение счетчика*/
        buf[b]=str1[i];                 /*Присваивание значения элемента буферного массива элементом*/
        }                               /*из первой строки*/
    for(k=0;k<kolsim2;k++)              /*Цикл заполнения буферного массива элементами из второй*/
        {                               /*строки. Начиная с позиции n.*/
        b=b+1;                          /*Увеличение счетчика*/
        buf[b]=str2[k];                 /*Присваивание значения элемента буферного массива элементом*/
        }                               /*из первой строки*/
    for(;i<kolsim1;i++)                 /*Цикл продолжения замиси элементов из первго массива в бу-*/
        {                               /*ферный массив*/
        b=b+1;                          /*Увеличение счетчика*/
        buf[b]=str1[i];                 /*Присваивание значения элемента буферного массива элементом*/
        }                               /*из первой строки*/
    buf[b+1]='\0';                      /*Запись NULL-терминатора, для верного вывода на экран*/
    printf ("Poluh'ennaja stroka %s\n", buf);   /*Вывод полученной строки*/
    return 0;                           /*Завершение программы*/
    }
else                                    /*Обработка неверных введенных данных*/
    {
    printf ("!!! Oshibka n !!!\n");     /*Вывод строки на экран*/
    return 0;                           /*Завершение программы*/
    }
}

Нужно решить при помощи библиотеки STRING и как можно короче. Жду вашех предложений.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
16.05.2012, 20:52     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #21
Цитата Сообщение от boyfromsun Посмотреть сообщение
gray_fox, Скажите а на чём вы писали программу ??? И чем вы её так проверяли ?? Найте названия, скачаю на будущее, большое спасибо
Компилятор - MinGW 4.7.0 (порт gcc под Windows), среда - NetBeans IDE 7.1.

Добавлено через 2 минуты
Цитата Сообщение от boyfromsun Посмотреть сообщение
скачаю на будущее
Под винду будет проще скачать Visual Studio 2010 Express (она, вроде, халявная). Там, естественно, другой компилятор.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 20:55  [ТС]     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #22
gray_fox, Если вам будет не сложно Дайте ссылку на компилятор , или загрузите на народ если не сложно, а NetBeans IDE 7.1. я нашёл. Спасибо
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
16.05.2012, 21:14     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #23
Сразу скажу, с этим могут быть проблемы (у меня правда не было) ). Проще скачать последнюю VS Express - там всё из коробки + более менее актуальный компилятор. Но если хочешь так, то: чтобы работать в NetBeans c C++ понадобится С++ плагин для него; если ты скачал NetBeans без плагина, то надо будет его самому скачать\поставить; качать установщик MinGW с офф. сайта: http://sourceforge.net/projects/ming...inst-20120426/ - выбирай .exe; в процессе установки убедись, что выделено g++ (с++ компилятор); если в NetBeans есть плагин для С++, то в меню Сервис->Параметры будет вкладка С/С++; возможно, там придётся ручками прописать пути к компилятору\дебагеру.
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 21:30  [ТС]     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #24
качаю NetBeans 7.1.2 размером 257 мб
Вот:
http://netbeans.org/downloads/
Написано там всё есть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2012, 21:35     Вставить в строку 1 содержимое строки 2 (#C) <String.h>
Еще ссылки по теме:

C++ Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0
C++ После первой строки, содержащей минимальный элемент, вставить строку из нулей
C++ Вставить после каждой строки, содержащей минимальное значение строку из нулей

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
16.05.2012, 21:35     Вставить в строку 1 содержимое строки 2 (#C) <String.h> #25
Вот, может пригодится: http://netbeans.org/community/releas...ctions_ru.html
Вообще, различных сред тьма, выбирайте на свой вкус: Бесплатные среды (IDE) для программирования на С/С++
Yandex
Объявления
16.05.2012, 21:35     Вставить в строку 1 содержимое строки 2 (#C) <String.h>
Ответ Создать тему
Опции темы

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