Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
1

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

31.01.2011, 15:06. Показов 2519. Ответов 11
Метки нет (Все метки)

Задача такова(если честно сама толком не поняла)
По индивидуальному заданию создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка C, но не применять их в своей функции.
Индивидуальная задание тут правда другой вариант а у меня другой хочу научится сама писать если кто нибудь покажет мне один пример!!!!
Пример: Функция - Compul(s1,s2). Назначение - сравнение строк s1 и та s2 с игнорированием различий в регистрах.

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

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

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

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

Добавлено через 40 минут
Пожалуйста очень нужна ваша помощь покажите пример? Я весь гугл обшарила в поисках чего-то похожего на мое задание не нашла так что вы моя последняя надежда!!!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2011, 15:06
Ответы с готовыми решениями:

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

11
Эксперт С++
5817 / 3469 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
31.01.2011, 15:19 2

Не по теме:

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


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

Не по теме:

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



А если серьезно, то задания далеко не уникальные, и только на этом форуме подобные темы возникают раз в несколько недель. И гуглятся нараз
0
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-ий мэйн
0
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:31  [ТС] 6
Цитата Сообщение от Nameless One Посмотреть сообщение
А если серьезно, то задания далеко не уникальные, и только на этом форуме подобные темы возникают раз в несколько недель. И гуглятся нараз
Значит это надо уметь впрочем я не нашла просто зря потратила время так что решила обратится к вам помогите а?
0
Эксперт С++
5817 / 3469 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
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=) Посмотреть сообщение
так что решила обратится к вам помогите а?
Я не понял, ты просила пример, я дал тебе пример. Что еще-то надо?
1
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 15:53  [ТС] 8
Цитата Сообщение от Nameless One Посмотреть сообщение
Я не понял, ты просила пример, я дал тебе пример. Что еще-то надо?
Конечно спасибо тебе БОЛЬШОЕ но просто мне нужен пример по заданию а не просто сравнивать строки. А по заданию надо создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка C, но не применять их в своей функции.Символьная строка в языке C представляется в памяти как массив символов, в конце которого находится байт с кодом 0 - признак конца строки. Строку, как и любой другой массив можно обрабатывать либо традиционным методом - как массив, с использованием операции индексации, либо через указатели, с использованием операций адресной арифметики. При работе со строкой как с массивом нужно иметь в виду, что длина строки заранее неизвестна, так что циклы должны быть организованы не со счетчиком, а до появления признака конца строки.

Тот пример отвечает отвечает на все поставленные задачи?
0
Эксперт С++
5817 / 3469 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
31.01.2011, 15:57 9
Цитата Сообщение от cyber_girl=) Посмотреть сообщение
Тот пример отвечает отвечает на все поставленные задачи?
Написано: либо через указатели, либо как массив. Я сделал через указатели. Примерную реализацию функции tolower я тоже написал (т.е. библиотечные функции теперь не используются), так что можно считать, что, отвечает
0
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 16:02  [ТС] 10
Цитата Сообщение от Nameless One Посмотреть сообщение
Написано: либо через указатели, либо как массив. Я сделал через указатели. Примерную реализацию функции tolower я тоже написал (т.е. библиотечные функции теперь не используются), так что можно считать, что, отвечает
Просто другой вариант такой же задачи я решила (не без помощи конечно) через указатель а препод поставил мне 50 процентов объяснил тем что нету метода с массивами и дал другой вариант вот я сижу парюсь
0
Эксперт С++
5817 / 3469 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
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] */
1
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 15
31.01.2011, 16:48  [ТС] 12
Можешь код полностью написать чет я не вникаю...))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2011, 16:48

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Работа со строками
1. Сколько предложений в тексте начинаются с цифры? 2. В конце каждого предложения, начинающегося...

работа со строками
Помагите написать прогу...буду весьма благодарен... В заданном предложении исключить все слова...

Работа со строками
К примеру есть текст: ............. &lt;tr&gt;&lt;td align=right&gt;&lt;a...

Работа со строками
вводим с клавиатуры некоторые слова. потом вводим букву, которую нужно вставить перед заданной...


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

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

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