С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
#1

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

16.05.2012, 18:44. Просмотров 2392. Ответов 24
Метки нет (Все метки)

Задание:
Ввести две символьных строки. Выполнить вставку второй строки в первую, с позиции, введенной с клавиатуры.

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

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 и как можно короче. Жду вашех предложений.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2012, 18:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вставить в строку 1 содержимое строки 2 (#C) <String.h> (C++):

Вставить в строку s содержимое s1 начиная с позиции n - C++
Помогите пожалуйста написать программу! Вставить в строку s содержимое s1 начиная с позиции n. То есть сначала идут n-первых символов s,...

std::string variable.data() обрезает содержимое строки - C++
Всем доброй ночи // read a file into memory #include &lt;iostream&gt; // std::cout #include &lt;fstream&gt; // std::ifstream ...

Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0 - C++
Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. Помогите пожалуйста с реализацией на Си

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

Строки: как вставить пробел в строку - C++
Привет все отзывчивым смотрите 16 строчку) #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { ...

Как вставить слово в строку или удалить из строки? - C++
Здравствуйте! Спрашиваю, так как не мог найти утвердительного ответа в поиске. Как вставить слово в строку или удалить из строки? То есть...

24
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 20:35  [ТС] #16
Секундочку , попробую с командой getch(); чтоб не закрывалось окно сразу...
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
16.05.2012, 20:41 #17
Цитата Сообщение от boyfromsun Посмотреть сообщение
Секундочку , попробую с командой getch(); чтоб не закрывалось окно сразу...
Лучше найдите в своей среде "start without debugging" или что-нибудь вроде этого... Alt + F5, наверно.
1
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 20:42  [ТС] #18
УРААААА СПАСИБО ВАМ ОГРОМНОЕ !! )))) ВСЕГО ВАМ ХОРОШЕГО !!!! )))) ЗАРАБОТАЛА ))))

Прикрутил библиотеку #include <conio.h>
и поставил команду getch(); после printf("result: %s\n", result);

Как я вам благодарен вы себе не представляете Вы спасли столько моих нервов ))) Сижу с самого утра мучаюсь Программу которая в шапке без библиотеки srting делал 3 недели )) Или около этого А тут )) Хух


ОГРОМНОЕ СПАСИБО
Alex_Konkov, ЗА ПОПЫТКУ ПОМОЧЬ
ОГРОМНОЕ СПАСИБО
gray_fox, ЗА РЕШЕНИЕ ЗАДАЧИ
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
16.05.2012, 20:44 #19
Цитата Сообщение от boyfromsun Посмотреть сообщение
ЗАРАБОТАЛА ))))
Поздравляю )))
1
boyfromsun
0 / 0 / 0
Регистрация: 17.02.2012
Сообщений: 13
16.05.2012, 20:46  [ТС] #20
gray_fox, Скажите а на чём вы писали программу ??? И чем вы её так проверяли ?? Найте названия, скачаю на будущее, большое спасибо
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
16.05.2012, 20:52 #21
Цитата Сообщение от boyfromsun Посмотреть сообщение
gray_fox, Скажите а на чём вы писали программу ??? И чем вы её так проверяли ?? Найте названия, скачаю на будущее, большое спасибо
Компилятор - MinGW 4.7.0 (порт gcc под Windows), среда - NetBeans IDE 7.1.

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

Ошибка при посимвольной записи из строки char в строку string - C++
Это фрагмент конструктора класса: ifstream fin(&quot;client.txt&quot;); const int n = 80; char buf; fin.getline(buf,...

Скопировать с конца строки std::string четыре символа в другую строку - C++
как функцией можно скопировать с конца строки 4 символа в другую? string a = &quot;123456&quot;; string b; результат: b =...

Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0 - C++
Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить S0.

После первой строки, содержащей минимальный элемент, вставить строку из нулей - C++
Дан двумерный массив А (n * m) После первой строки содержащей минимальный элемент вставить строку из нулевых элементов


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

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