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

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

Войти
Регистрация
Восстановить пароль
 
Malina1
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 11
#1

указатели,символьные строки и функции - C++

03.01.2012, 01:43. Просмотров 608. Ответов 4
Метки нет (Все метки)

Разработать функцию, которая выполняет ту обработку фрагмента текста, которая определена в Вашем индивидуальном задании. При реализации функции запрещается пользоваться функциями библиотек языка C.

Примечания:

1. Функция должна возвращать результат в любом случае. Например, необходимо предусмотреть работу функции при некорректном задании ее параметров, некорректном вводе данных и т.п. Таким образом, функция возвращает либо некоторый ожидаемый результат ( его необходимо проверять во время отладки), либо код ошибки, который позволит нам определить какие проблемы встретились во время работы функции.

2. Термины «слово», «текст», «предложение» применяются в условиях заданий в их обычном, естественно-языковом значении.

индивидуальное задание:Функция выравнивает строку по левому краю до заданной длины.



не использовать void и программу как можно попроще.спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2012, 01:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос указатели,символьные строки и функции (C++):

Указатели, символьные строки и функции - C++
Функция разбивает строку на две части: до первого вхождения за-данного символа и после него. буду очень солидарен.

Указатели, символьные строки и функции в с++ - C++
помогите пожалуйста написать программу по заданию на картинках

Указатели, символьные строчки и функции. СРОЧНО - C++
Разработать функцию, которая выполняет такую обработку символьной строки, которая определена в Вашем индивидуальном задании. При реализации...

Символьные строки и функции - C++
Создайте функцию, которая печатает строку и сообщает количество напечатанных символов.

Символьные строки и функции - C++
Приветик всем, Я не могу понять, что от меня требуется: Разработать функцию. Функция - Left(s,l). Назначение - выравнивание строки s...

Символьные строки и функции - C++
Помогите написать функцию Right(s,l) для выравнивание строки s по правому краю до длины l.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alkagolik
Заблокирован
03.01.2012, 02:24 #2
Цитата Сообщение от Malina1 Посмотреть сообщение
не использовать void
идеологии не соответствует?
0
Malina1
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 11
03.01.2012, 02:26  [ТС] #3
преподу не нравится,сказал заменит чем-нить
0
ProNoooob
74 / 74 / 6
Регистрация: 14.10.2009
Сообщений: 121
03.01.2012, 05:11 #4
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
 
char *MyOwnFunc(const char *string, int len)
{
    char *new_string;
    int k, i;
 
    if(!string) //проверка не подсунули ли нам нуль заместо строки.
        return 0;
    if(!len)    //проверка деления на нуль.
        return 0;
    //Выделяем память для новой строки. 
    //Размер = размер старой + место для символов переноса + место для нуля + погрешность округления.
    new_string = (char *)malloc(sizeof(string) + (sizeof(string)/len) + 1 + 1);
    if(!new_string) //проверка на корректно выделенную память
        return 0;
 
    for(k = 0, i = 0; *string; i++)
    {
        if(k == len)
        {
            new_string[i] = '\n';
            while(*string == ' ')
                string++;
            k = 0;
            continue;
        }
        new_string[i] = *string;
        string++;
        k++;
    }
 
    new_string[i] = '\0';
 
    return new_string;
}
 
int main()
{
    char buf[100];
    char *result;
 
    gets(buf);
    result = MyOwnFunc(buf, 7);
    if(!result)
        printf("Internal Error!");
    printf("\n%s\n", result);
 
    system("pause");                           //можно удалить
 
    return 0;
}
Вообще требования к заданию нужно излагать жоще.
Либо эта ваша функция безопасна на 100%. Либо она не использует стандартную библиотеку.
Вот пример выше. Мы же не имеем право изменять строку, которую нам дали в качестве аргумента.
Ни кто не знает сколько там свободной памяти, в которой можно копаться.
Поэтому мы создаем новую строку. Для этого используем malloc.
Естественно проверяем все на ошибки.
Но! Это не правильный вариант. (с точки зрения кодестайла).
Ни одна функция стандартной библиотеки так не работает.

В принципе знаки переноса строки можно было бы навставлять заместо пробелов. Но не всегда получиться выравнять строку там, где требует условие. Тут тоже непонятки. Четкое следование условию или нет?
(так например работает strtok)
0
silent_1991
03.01.2012, 06:48     указатели,символьные строки и функции
  #5

Не по теме:

Цитата Сообщение от Malina1 Посмотреть сообщение
преподу не нравится,сказал заменит чем-нить

2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2012, 06:48
Привет! Вот еще темы с ответами:

Символьные указатели - C++
Вводиться список символов. Если в этой последовательности есть буква &quot;В&quot;, то после каждой буквы поставить символ&quot;+&quot;,иначе удалить из...

Программа на тему указатели, функции, строки. (язык Си) - C++
Доброго времени суток. Как это случается со многими - я оттянула решение лабораторных работ до самого конца. В программировании я полный 0,...

Символьные литералы, указатели и функция. Не могу понять, почему именно так - C++
Доброго времени суток всем! :) Изучаю С++, всегда стараюсь добить до последнего код, чтобы не было непоняток. Но сейчас наткнулся на...

Указатели, функции и динамическое выделение памяти: вывести строки с неповторяющимися данными - C++
Задана матрица A(n,n) ,n&lt;=15 . Написать программу, которая находит и выводит на экран номера тех строк, элементы которых не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.01.2012, 06:48
Ответ Создать тему
Опции темы

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