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

Работа с символьними строками - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:06     Работа с символьними строками #1
Задача такова(если честно сама толком не поняла)
По индивидуальному заданию создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка C, но не применять их в своей функции.
Индивидуальная задание тут правда другой вариант а у меня другой хочу научится сама писать если кто нибудь покажет мне один пример!!!!
Пример: Функция - Compul(s1,s2). Назначение - сравнение строк s1 и та s2 с игнорированием различий в регистрах.

Описание метода решения

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

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

Пожалуйста срочно нужно сделать до завтра,помогите пожалуйста!!!!

Добавлено через 40 минут
Пожалуйста очень нужна ваша помощь покажите пример? Я весь гугл обшарила в поисках чего-то похожего на мое задание не нашла так что вы моя последняя надежда!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2011, 15:06     Работа с символьними строками
Посмотрите здесь:

Работа со строками C++
C++ Работа со строками С++
Работа со строками C++
Работа со строками C++
C++ Работа со строками.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.01.2011, 15:19     Работа с символьними строками #2

Не по теме:

Цитата Сообщение от cyber_girl=) Посмотреть сообщение
Индивидуальная задание тут правда другой вариант а у меня другой хочу научится сама писать если кто нибудь покажет мне один пример!!!!
Спасибо, посмеялись


Пример
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:25  [ТС]     Работа с символьними строками #3
Цитата Сообщение от Nameless One Посмотреть сообщение
Спасибо, посмеялись
нет серьезно у меня вот этот вариант Функция - Findwords(s,s1). Назначение - поиск вхождения в строку s заданной фразы (последовательности слов) s1. Ну если хотите порешайте эту
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.01.2011, 15:29     Работа с символьними строками #4

Не по теме:

Цитата Сообщение от cyber_girl=) Посмотреть сообщение
Ну если хотите порешайте эту
не, я не смогу.



А если серьезно, то задания далеко не уникальные, и только на этом форуме подобные темы возникают раз в несколько недель. И гуглятся нараз
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:29  [ТС]     Работа с символьними строками #5
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define TEST(A, B) printf("`%s' compare `%s': %d\n", (A), (B), strcompare((A), (B)))
int strcompare(const char*, const char*);
int main()
{
 TEST("FooBar", "foobar");
 TEST("FoObAr", "FoobaZ");
 TEST("a", "AB");
 TEST("f", "Ab");
 TEST("a(B)c", "A(b)C");
 exit(0);
}
/* Возвращает ноль, если строки равны;
 * -1, если первая строка меньше второй;
 * 1, в противном случае (все без учета различий в регистре символов)
 */
int strcompare(const char* str1, const char* str2)
{
 for( ; *str1 && *str2; ++str1, ++str2)
 {
 if(tolower(*str1) < tolower(*str2))
 return -1;
 else if(tolower(*str1) > tolower(*str2))
 return 1;
 }
return ((!*str1) && (!*str2) ? 0 : (!*str1) ? -1 : 1); 
}
Нам не разрешают использовать библиотечные функций. А мне нужно именно так как дано в задаче. А в суть задачи я никак не могу вникнуть вот поэтому я прошу показать мне пример просто нам сказали создать 3 метода с 1-ый массивами 2-ой с указателями и 3-ий мэйн
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:31  [ТС]     Работа с символьними строками #6
Цитата Сообщение от Nameless One Посмотреть сообщение
А если серьезно, то задания далеко не уникальные, и только на этом форуме подобные темы возникают раз в несколько недель. И гуглятся нараз
Значит это надо уметь впрочем я не нашла просто зря потратила время так что решила обратится к вам помогите а?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.01.2011, 15:47     Работа с символьними строками #7
Цитата Сообщение от cyber_girl=) Посмотреть сообщение
Нам не разрешают использовать библиотечные функций
Ну, функцию tolower можно определить так:
C
1
2
3
4
5
6
7
int my_tolower(int c)
{
    if((c >= 'A') && (c <= 'Z'))
    c += 'a' - 'A';
    
    return c;
}
Цитата Сообщение от cyber_girl=) Посмотреть сообщение
так что решила обратится к вам помогите а?
Я не понял, ты просила пример, я дал тебе пример. Что еще-то надо?
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:53  [ТС]     Работа с символьними строками #8
Цитата Сообщение от Nameless One Посмотреть сообщение
Я не понял, ты просила пример, я дал тебе пример. Что еще-то надо?
Конечно спасибо тебе БОЛЬШОЕ но просто мне нужен пример по заданию а не просто сравнивать строки. А по заданию надо создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка C, но не применять их в своей функции.Символьная строка в языке C представляется в памяти как массив символов, в конце которого находится байт с кодом 0 - признак конца строки. Строку, как и любой другой массив можно обрабатывать либо традиционным методом - как массив, с использованием операции индексации, либо через указатели, с использованием операций адресной арифметики. При работе со строкой как с массивом нужно иметь в виду, что длина строки заранее неизвестна, так что циклы должны быть организованы не со счетчиком, а до появления признака конца строки.

Тот пример отвечает отвечает на все поставленные задачи?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.01.2011, 15:57     Работа с символьними строками #9
Цитата Сообщение от cyber_girl=) Посмотреть сообщение
Тот пример отвечает отвечает на все поставленные задачи?
Написано: либо через указатели, либо как массив. Я сделал через указатели. Примерную реализацию функции tolower я тоже написал (т.е. библиотечные функции теперь не используются), так что можно считать, что, отвечает
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 16:02  [ТС]     Работа с символьними строками #10
Цитата Сообщение от Nameless One Посмотреть сообщение
Написано: либо через указатели, либо как массив. Я сделал через указатели. Примерную реализацию функции tolower я тоже написал (т.е. библиотечные функции теперь не используются), так что можно считать, что, отвечает
Просто другой вариант такой же задачи я решила (не без помощи конечно) через указатель а препод поставил мне 50 процентов объяснил тем что нету метода с массивами и дал другой вариант вот я сижу парюсь
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
31.01.2011, 16:12     Работа с символьними строками #11
Цитата Сообщение от cyber_girl=) Посмотреть сообщение
препод поставил мне 50 процентов объяснил тем что нету метода с массивами и дал другой вариант вот я сижу парюсь
Вот тебе пример, как перебрать в цикле элементы строки как массива:
C
1
2
3
4
const char* c = "foobar";
size_t i;
for(i = 0; c[i]; ++i)
    /* Доступ по индексу - c[i] */
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2011, 16:48     Работа с символьними строками
Еще ссылки по теме:

Работа со строками C++
Работа со строками C++
C++ работа со строками

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

Или воспользуйтесь поиском по форуму:
cyber_girl=)
 Аватар для cyber_girl=)
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 16:48  [ТС]     Работа с символьними строками #12
Можешь код полностью написать чет я не вникаю...))))
Yandex
Объявления
31.01.2011, 16:48     Работа с символьними строками
Ответ Создать тему
Опции темы

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