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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
#1

"Напишите и продемонстрируйте" - что от меня хотят? - C++

10.10.2008, 16:42. Просмотров 1458. Ответов 12
Метки нет (Все метки)

Всех приветствую.
Мне выдано задание, посвящённое работе со строками:
Напишите функции и продемонстрируйте их работу:
C++
1
2
3
4
5
int strlen(char*);
void strcpy (char * out, char * in);
void strcat (char * out, char * in);
char * strcat1 (char * in1, char * in2);); // - вообще не понял синтаксиса
char * revers (char *s);
Возникли следующие вопросы:

1. Под "напишите" имеется ввиду только вызов функций или необходимо их полноценно определять?

2. Все предложенные функции - встроенные? Если да, их нужно объявлять в коде? Нужно ли подключить какие-либо библиотеки?

Пока с первой функцией поступил вот так:
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
void main()
{
    char *str;
    str = "stroka";
    cout<<strlen(str)<<endl;
}
Если не трудно, напишите небольшие примеры использования функций 2, 3, 4, 5.
У меня постоянно происходят вылеты с системной ошибкой.

Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2008, 16:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Напишите и продемонстрируйте" - что от меня хотят? (C++):

Напишите программу, которая выбирает правильное слово (из "bochka" , "bochek" , "bochki" ) в зависимости от N. - C++
Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес – отгружать апельсины бочками. Партнерам важно знать сколько...

Что же от меня хотят? :] - C++
только только разобрался с бинарным деревом и получил вот такое новое задание но что то не совсем понял что от меня требуется : Write...

как сделать , что бы при вводе слова "Minsk" у меня выполнялось действие? - C++
Вообщем я не могу понять , как сделать , что бы при вводе слова &quot;Minsk&quot; у меня выполнялось действие?Мне нужно сделать так, что бы при вводе...

Не понял, что от меня хотят - C++
С помощью функции function в массиве array положите последовательность. К примеру, если n=5, то array=5, array=7, array=9 ...

фаил! что от меня хотят?! - C++
:D это задание моего варианта по пяву но дело вовсе не в том что я не могу решить.... я даже понять задание толком не могу...:yahoo: ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

12
Angry_Bobo
269 / 31 / 3
Регистрация: 27.08.2008
Сообщений: 156
10.10.2008, 16:48 #2
От вас хотят, чтобы вы написали:

- функцию, вычисляющую длинну строки, не используя модуль <string.h>
- функцию копирования байт одной строки в другую, не используя модуль <string.h>
- функции конкатенации и строк, не используя модуль <string.h>
1
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
10.10.2008, 16:56  [ТС] #3
Понятно. Тогда вопрос таков - как это сделать на примере

Код
int strlen(char*);
Не предствляю, как к строке в таком случае обратиться.
0
Angry_Bobo
269 / 31 / 3
Регистрация: 27.08.2008
Сообщений: 156
10.10.2008, 17:04 #4
ну допустим функция вычисления длинны строки выглядит приблизительно так:
C++
1
2
3
4
5
int strlen( char *str ) {
 int i=0;
 while ( *( str + i )  != '\0' ) i++;
 return i;
}
0
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
10.10.2008, 17:08  [ТС] #5
Меня смутило именно отсутствие имени переменной в тексте задания.
Спасибо.

Теперь у меня неоднозначность только с
Код
char * strcat1 (char * in1, char * in2); ) ;
Вторая ; ) там лишняя?
0
Angry_Bobo
269 / 31 / 3
Регистрация: 27.08.2008
Сообщений: 156
10.10.2008, 17:13 #6
Цитата Сообщение от Nicl Посмотреть сообщение
Меня смутило именно отсутствие имени переменной в тексте задания.
Спасибо.

Теперь у меня неоднозначность только с
Код
char * strcat1 (char * in1, char * in2); ) ;
Вторая ; ) там лишняя?
лишняя...
эта функция должна сложить строки in1 и in2, вернув указатель на результирующую строку, в отличии от strcat, которая добавляет байты in к out
0
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
11.10.2008, 16:08  [ТС] #7
Что-то ничего не получается.
C++
1
2
3
4
5
6
7
8
9
10
void strcpy(char * out, char *in)
{
    int i = 0;
    while (*(out + i) != '\0') 
    {
    *(out+i) = *(in+i);
        //вылетает системная ошибка из-за этого момента. Как его корректно реализовать?
    i++;
    }
}
0
rinal
0 / 0 / 0
Регистрация: 11.10.2008
Сообщений: 15
11.10.2008, 16:17 #8
Я подумаю насчет вашей проблемы
0
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
11.10.2008, 16:30  [ТС] #9
Спасибо, но к сожалению реализация очень нужна в пределах часа. У меня сейчас главная проблема - невозможность присвоить разыменованному указателю *(str+i) символ. С остальным кое-как справляюсь.
0
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
11.10.2008, 16:59 #10
надо выделить функцией malloc место в памяти под строку
0
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
11.10.2008, 17:07  [ТС] #11
void strcpy1(char *s1, char *s2)
{
s2[0]=s1[0];
}
Вылетает окно - "PrjS.exe - обнаружена ошибка. Приложение будет закрыто."
0
Prividenie
74 / 74 / 6
Регистрация: 05.10.2008
Сообщений: 233
11.10.2008, 20:45 #12
вместо strlen примените свою функцию или посчитайте циклом (си, компилятор турбо си2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void strcpy1(char *,char *);
int main()
{
char *s1="ssdf";
char *s2;
s2=malloc(strlen(s1)+1);
strcpy1(s2,s1);
printf("\n%s",s2);
free(s2);
return 0;
}
void strcpy1(char *s2, char* s1)
{
int i;
for(i=0;i<=strlen(s1);i++)
     s2[i]=s1[i];
}
0
Nicl
0 / 0 / 0
Регистрация: 07.10.2008
Сообщений: 26
12.10.2008, 16:38  [ТС] #13
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
#include <iostream>
using namespace std;
void strcpy(char* out, char *in)
{   int len = 0;
    int i = 0;
    while (*(in+len) != '\0')
    {
        len++;
    }
 for (i = 0; i<len; i++)
 {
     out[i] = in[i];
 }
 out[i] = '\0';
}
void main()
{   int len = 0;
    char *str1 = "abc";
    while (*(str1+len) != '\0')
    {
        len++;
    }
    char *str2 = new char[len];
    str2[len] = '\0';
    strcpy(str2,str1);
    cout<<endl<<"Stroka "<<str1<<" skopirovana. Rezultat: "<<str2<<"."<<endl;
}
Реализовал вот так.
0
12.10.2008, 16:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2008, 16:38
Привет! Вот еще темы с ответами:

Не могу понять что от меня хотят :( - C++
Помогите разобраться в ошибке. Так как я только-только начал писать в С++ не могу понять из-за чего эта ошибка. ...

Ошибки я не пойму что от меня хотят - C++
Есть 3 файла. main.cpp, array1.cpp и array1.h. Собственно такие ошибки \ivan\array1.h||In function 'std::ostream&amp;...

С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён. - C++
#define _CRT_SECURE_NO_WARNINGS #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;iostream&gt; #define Pi 3.1416 #include &lt;clocale&gt;...

Visual Studio не читает операторы, что начинаются на "glu" ("gluBuild2DMipmaps", "gluPerspective") - C++
Данный код должен выводить на экран кубик который должен вращаться, но возникла проблема. Для выполнения этого кода я подключи библиотеку...


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

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

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