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

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

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

Собственная функция strcat -сцепление строк - C++

08.11.2012, 20:13. Просмотров 1483. Ответов 11
Метки нет (Все метки)

написать собственную функцию strcat -сцепление строк. Сравнить работу функции со стандартной из библиотеки string.h, если таковая имеется(если стандартной функции не существует, имя функции задания выделено курсивом). Выделение динамической памяти в этой задаче не предполагается.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <string.h>
char *strcat(char *s)
char c, *t, *t0=s;
for (t=s+strlen (s)-1;s<t;s++,t--){
c=*s; *s=*t; *t=c;
}
return t0;
}
void main(){
char s[80],s2[80];
printf("\nVvedite stroku: ");
gets(s);
strcpy (s2,s);
puts("\nMoja funkzija:"); puts (strcat(s));
puts("\nstandartnaja funczija:"); puts (strcat(s2));
fflush(stdin);getchar();
}
у меня выдаются синтаксические ошибки, если честно то не очень понимаю как их исправить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 20:13     Собственная функция strcat -сцепление строк
Посмотрите здесь:
Сцепление строк C++
C++ Функция strcat
C++ функция strcat
C++ функция strcpy и strcat
Что делает функция strcat(t, f) C++
Библиотека string.h, функция strcat C++
C++ Собственная функция gets и puts
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 20:16     Собственная функция strcat -сцепление строк #2
Синтаксические ошибки подправил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
char *strcat(char *s) 
{
char c, *t, *t0=s;
for (t=s+strlen (s)-1;s<t;s++,t--){
c=*s; *s=*t; *t=c;
}
return 0;
}
int main(){
char s[80],s2[80];
printf("\nVvedite stroku: ");
gets(s);
strcpy (s2,s);
puts("\nMoja funkzija:"); puts (strcat(s));
puts("\nstandartnaja funczija:"); puts (strcat(s2));
fflush(stdin);getchar();
}
void main не пиши это неправильно
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
08.11.2012, 20:23     Собственная функция strcat -сцепление строк #3
Цитата Сообщение от MaRiNk Посмотреть сообщение
void main(){
int main

Добавлено через 3 минуты
Цитата Сообщение от MaRiNk Посмотреть сообщение
char *strcat(char *s)
char c, *t, *t0=s;
for (t=s+strlen (s)-1;s<t;s++,t--){
c=*s; *s=*t; *t=c;
}
return t0;
}
Это не сцепление строк, а что-то похожее на переворот строки в обратном порядке

Добавлено через 52 секунды
Цитата Сообщение от MaRiNk Посмотреть сообщение
char *strcat(char *s)
фигурной скобки нет
C++
1
char *strcat(char *s){
Добавлено через 2 минуты
Цитата Сообщение от David Sylva Посмотреть сообщение
puts("\nMoja funkzija:");
puts (strcat(s));
puts("\nstandartnaja funczija:");
puts (strcat(s2));
Ты действительно думаешь, что компилятор различит 2 функции с одинаковыми именами? К тому же настоящий strcat принимает 2 строки
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
08.11.2012, 20:26     Собственная функция strcat -сцепление строк #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ты действительно думаешь, что компилятор различит 2 функции с одинаковыми именами? К тому же настоящий strcat принимает 2 строки
Я поэтому поводу ничего не думаю, я даже не смотрел о чём программа, человек спросил о синтаксических ошибках я ему их подправил, чтобы программа компилировалась, а по смыслу не смотрел.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
08.11.2012, 20:29     Собственная функция strcat -сцепление строк #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Я поэтому поводу ничего не думаю, я даже не смотрел о чём программа, человек спросил о синтаксических ошибках я ему их подправил, чтобы программа компилировалась, а по смыслу не смотрел.
Ну я собственно не тебе и отвечал. Извини, но взял цитату кода из твоего ответа.
MaRiNk
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 62
08.11.2012, 20:42  [ТС]     Собственная функция strcat -сцепление строк #6
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Это не сцепление строк, а что-то похожее на переворот строки в обратном порядке
а правильно тогда как будет?
C++
1
2
3
4
5
6
7
char *strcat(char *s)
char c, *t, *t0=s;
for (t=s+strlen (s);s<t;s++){
c=*s; *s=*t; *t=c;
}
return 0; 
}
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
08.11.2012, 20:48     Собственная функция strcat -сцепление строк #7
Цитата Сообщение от MaRiNk Посмотреть сообщение
а правильно тогда как будет?
char *strcat(char *s)
char c, *t, *t0=s;
for (t=s+strlen (s);s<t;s++){
c=*s; *s=*t; *t=c;
}
return 0;
}
примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
char* strcatMy(char* dest, char* src){
  char* it=dest;
  while(*it++);
  while(*src){
     *it=*src;
     src++;
     it++;
  }
  *it=0;
  return dest;
}
Обязательно назови strcatMy или strcat2, но не тем же самым именем, с которым хочешь сравнивать
MaRiNk
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 62
09.11.2012, 04:45  [ТС]     Собственная функция strcat -сцепление строк #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
char* strcatMy(char* dest, char* src)
у меня выдает ошибку о том что мало параметров вызвано
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
09.11.2012, 04:53     Собственная функция strcat -сцепление строк #9
Цитата Сообщение от MaRiNk Посмотреть сообщение
у меня выдает ошибку о том что мало параметров вызвано
Ты Давид Силва? Естесственно выдаёт, потому что вы оба strcat вот так вызываете.
Цитата Сообщение от David Sylva Посмотреть сообщение
strcat(s)
Погуглите оба справку по strcat и узнаете, что ей надо передавать строку src и строку dest. А затем напишите как надо.
MaRiNk
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 62
09.11.2012, 05:16  [ТС]     Собственная функция strcat -сцепление строк #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А затем напишите как надо.
C++
1
2
puts("\nMoja funkzija:"); puts (strcatMy(s,s2)," ");
puts("\nstandartnaja funczija:"); puts (strcat(s,s2)," ");
мне это дало другие ошибки
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
09.11.2012, 05:25     Собственная функция strcat -сцепление строк #11
какие другие? Что puts принимает только одну строку как параметр? И ты этого не знаешь? Судя по использованию puts("\nMoja funkzija:"); - знаешь. Тогда почему рядом пишешь какой-то ещё " " во втором вызове puts???
C++
1
2
puts("\nMoja funkzija:"); puts (strcatMy(s,s2));
puts("\nstandartnaja funczija:"); puts (strcat(s,s2));
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2012, 08:23     Собственная функция strcat -сцепление строк
Еще ссылки по теме:
Своя функция strcat. Копирует мусор C++
Своя функция strcat, завершение с ошибкой C++
Собственная функция true, false C++
C++ Сложение строк strcat и указатели
C++ Назначение - конкатенация строк s1 и s2, не используя библиотечную функцию - strcat

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

Или воспользуйтесь поиском по форуму:
MaRiNk
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 62
09.11.2012, 08:23  [ТС]     Собственная функция strcat -сцепление строк #12
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Код C++

puts("\nMoja funkzija:"); puts (strcatMy(s,s2));
puts("\nstandartnaja funczija:"); puts (strcat(s,s2));
щас все нормально, кроме того что он соединяет вторую строчку со второй, а не с первой

Добавлено через 54 минуты
а если вообще без него
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
puts("\nMoja funkzija:")
я добавила еще одну строку
C++
1
2
3
4
5
gets(s1); strcpy (s1,s2);
gets(s2); strcpy (s1,s2);
gets(s3); strcpy (s1,s2);
puts("\nMoja funkzija:"); puts (strcat(s1,s2));
puts("\nstandartnaja funczija:"); puts (strcat(strcat(strcpy(s1,s2)s2)s3));
но выводит строчки вторая+вторая+третья, как вместо второй первую поставить?

Добавлено через 6 минут
Цитата Сообщение от MaRiNk Посмотреть сообщение
как вместо второй первую поставить
всё, я справилась =))))
спасибо, за оказанную ранее помощь)))))))))
Yandex
Объявления
09.11.2012, 08:23     Собственная функция strcat -сцепление строк
Ответ Создать тему
Опции темы

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