Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2010, 16:43   #1
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию объединение строк

Задание: Написать функцию sconcat(s1, s2) конкатенации двух строк произвольной длины. Функция возвращает указатель на объединенную строку.

Код:
#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *sconcat(char *s1,char *s2){
     char *res,*tmp;
     res=tmp=(char *) calloc(1,strlen(s1)+strlen(s2)+1);
     while (*s1)
     *tmp++= *s1++;
     while (*s2)
     *tmp++= *s2++;
     return res;
     };

int main()
{ 
 int n;
    char s1[10],s2[10];
    char* s3;

    for (int i=0;i<10;i++)
    scanf("%c",&s1[i]);

    for (int i=0;i<10;i++)
    scanf("%c",&s2[i]);
  
    s3=sconcat(s1,s2);
    n=strlen(s3);
    for (int i=0;i<n;i++)
    printf("%c",s3[i]);
    system("PAUSE");
    return EXIT_SUCCESS;
}
В чем ошибка?

Последний раз редактировалось ManU; 04.04.2010 в 17:03.
ManU вне форума Ответить с цитированием
Старый 04.04.2010, 17:10   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А в чём ошибка?
Всё правильно ведь)
Я бы рекомендовал не использовать посимвольный ввод/вывод здесь
Код:
fgets(s1, 10, stdin);
fgets(s2, 10, stdin);
s3 = sconcat(s1, s2);
printf("%s", s3); // puts(s3); ...
netrino вне форума Ответить с цитированием
Старый 04.04.2010, 17:20   #3
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Извиняюсь за глупый вопрос, но функция fgets(); есть и в С и С++ или только в С++.
Можно ли как-то по-другому устранить проблему с вводом выводом моих строк?
ManU вне форума Ответить с цитированием
Старый 04.04.2010, 17:35   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Зачем по-другому? Чем этот способ не устраивает?
Есть в C и в C++
netrino вне форума Ответить с цитированием
Старый 04.04.2010, 17:51   #5
ManU
Пользователь Подтвердите свой е-майл
 
Аватар для ManU
 
Регистрация: 30.04.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Зачем по-другому? Чем этот способ не устраивает?
Есть в C и в C++
Раз он есть и в С, то тогда все впорядке
ManU вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00
Объединение 2-х столбцов/строк windzor Общие вопросы .NET 3 23.12.2009 16:08
объединение строк Silipin Microsoft Office Excel 2 28.10.2009 14:19
Объединение строк в Memo Leksda Общие вопросы Delphi 12 24.03.2009 13:54
Паскаль. Объединение строк. gotex Помощь студентам 6 08.05.2008 22:47