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

Функция которая склеивает 2 строки - C++

Восстановить пароль Регистрация
 
LOLYOU1996
3 / 3 / 0
Регистрация: 25.08.2013
Сообщений: 39
02.10.2013, 15:24     Функция которая склеивает 2 строки #1
Доброго времени суток. Я решил написать простенькую функцию но у меня появилась проблема. В результате работы программы при вводе:
PHP
1
2
trat
ata
выводит
PHP
1
t
В решении проблемы хотелось бы услышать где проблема как ее решить, а вот решить я постараюсь сам.

вот код
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
char String(char *input1,char *input2){
     char output[strlen(input1) + strlen(input2) + 1];
     int i = 0;
     for(i; i < strlen(input1); i++)
        output[i] = input1[i];
     for(i; i < strlen(input2); i++)
        output[i] = input2[i];
     output[i] = '\0';
     return *output;
}
 
int main(){
    char str1[100], str2[100];
    cin >> str1 >> str2;
    
    cout << String(str1, str2);
    
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2013, 15:24     Функция которая склеивает 2 строки
Посмотрите здесь:

Удаление из строки определенных символов C++
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
Создать функцию, которая на вход получает строку символов и один символ, функция печатает те слова строки, в которых встречается этот символ. C++
Не могу найти простую ошибку. Склеивает строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
02.10.2013, 15:39     Функция которая склеивает 2 строки #2
Не верно указаны условия суммирования.
C++
1
2
for(int k = 0; k < strlen(input2); k++)
        output[i + k] = input2[k];
Добавлено через 8 минут
C++
1
char output[strlen(input1) + strlen(input2) + 1];
Не динамическое выделение памяти. У вас программа компиллится?
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
02.10.2013, 15:49     Функция которая склеивает 2 строки #3
Я могу ошибаться ведь давно не страдал подобным но помоиму создание статического масива с указанием его размера переменной возможно только если переменная константная ! а так как оно выглядит у вас оно работать не будит !
+ при передачи масивов в функцию нужно добавлять 2-ю строку к 1-й а не создавать новую .
Однако если хочется получить новую строку то прейдется создавать динамическую.
Тоесть можно заранее предвидев ситуацию создать основной масив больших размеров и дописывать в него все необходимое.
gray_fox
02.10.2013, 15:51
  #4

Не по теме:

Цитата Сообщение от LOLYOU1996 Посмотреть сообщение
C++
1
char output[strlen(input1) + strlen(input2) + 1];
VLA - это нестандартное расширение; для справки

alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
02.10.2013, 15:51     Функция которая склеивает 2 строки #5
Я могу ошибаться ведь давно не страдал подобным но помоиму создание статического масива с указанием его размера переменной возможно только если переменная константная ! а так как оно выглядит у вас оно работать не будит !
+ при передачи масивов в функцию нужно добавлять 2-ю строку к 1-й а не создавать новую .
Однако если хочется получить новую строку то прейдется создавать динамическую.
Тоесть можно заранее предвидев ситуацию создать основной масив больших размеров и дописывать в него все необходимое.
Yandex
Объявления
02.10.2013, 15:51     Функция которая склеивает 2 строки
Ответ Создать тему
Опции темы

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