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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
MaRiNk
 Аватар для MaRiNk
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 62
08.11.2012, 20:13     Собственная функция strcat -сцепление строк #1
написать собственную функцию 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++ Функция strcat
C++ функция strcpy и strcat
C++ Собственная функция gets и puts
своя функция strcat, заверешение с ошибкой C++
Что делает функция strcat(t, f) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
08.11.2012, 20:26     Собственная функция strcat -сцепление строк #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ты действительно думаешь, что компилятор различит 2 функции с одинаковыми именами? К тому же настоящий strcat принимает 2 строки
Я поэтому поводу ничего не думаю, я даже не смотрел о чём программа, человек спросил о синтаксических ошибках я ему их подправил, чтобы программа компилировалась, а по смыслу не смотрел.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
08.11.2012, 20:29     Собственная функция strcat -сцепление строк #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Я поэтому поводу ничего не думаю, я даже не смотрел о чём программа, человек спросил о синтаксических ошибках я ему их подправил, чтобы программа компилировалась, а по смыслу не смотрел.
Ну я собственно не тебе и отвечал. Извини, но взял цитату кода из твоего ответа.
MaRiNk
 Аватар для 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
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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
 Аватар для 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
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
09.11.2012, 04:53     Собственная функция strcat -сцепление строк #9
Цитата Сообщение от MaRiNk Посмотреть сообщение
у меня выдает ошибку о том что мало параметров вызвано
Ты Давид Силва? Естесственно выдаёт, потому что вы оба strcat вот так вызываете.
Цитата Сообщение от David Sylva Посмотреть сообщение
strcat(s)
Погуглите оба справку по strcat и узнаете, что ей надо передавать строку src и строку dest. А затем напишите как надо.
MaRiNk
 Аватар для 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
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 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 -сцепление строк
Еще ссылки по теме:

Библиотека string.h, функция strcat C++
C++ функция strcat
Своя функция strcat. Копирует мусор C++

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

Или воспользуйтесь поиском по форуму:
MaRiNk
 Аватар для 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 -сцепление строк
Ответ Создать тему
Опции темы

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