Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Строка, алфавитный порядок

15.03.2010, 17:28. Показов 4940. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста, помогите сделать задачу, уже 3ю неделю над ней страдаю!

Написать и протестировать функцию, которая определяет, располагаются ли буквы в заданной символьной строке в алфавитном порядке.

Если кто поможет, спасибо заранее!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2010, 17:28
Ответы с готовыми решениями:

Алфавитный порядок - строки
Помогите пожалуйста решить задачу: Описать функцию Sort(A), которая принимает в виде параметра строку A, состоящую из трёх слов, в каждом...

Строка: Изменить порядок символов в строке на обратный
Напишите программу, которая изменяет порядок символов в строке на обратный. Использование функции strlen() из библиотеки string.c...

Задана строка. Изменить порядок следования символов в 1 и 2 половине строки на обратный
Всем доброго времени суток! Работать со строками крайне не умею, а сдать нужно. Надеюсь, что поможете. То есть, я понимаю это как...

13
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
15.03.2010, 17:49
Псевдокод.
Попарно в цикле сравниваешь элементы строки:str[i] и str[i+1];
bool alph = true;
for(i=0;i<длинны строки;i++)if(str[i]>str[i+1]){aplh = false;}
//После выхода из цикла
проверяешь
if(aplh){ массив упорядочен }
else не упорядочен.
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
15.03.2010, 17:54  [ТС]
Блин а в функции если? как-то это не смотрится в функции...или слишком черновой вариант.
0
Peace 2 all shining faces
 Аватар для Vorona
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
15.03.2010, 17:59
ну а как еще должна смотреться функция?)
например пусть принимает сами строки, а возвращает значение true или false, т.е. в алфавитном порядке символы расположены или нет)
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
15.03.2010, 18:02
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Блин а в функции если? как-то это не смотрится в функции...или слишком черновой вариант.
А самому сделать никак? Тебе же уже все разжевали. Пусть функция возвращает тип bool. В качестве параметра передаешь функции указатель на строку, вместо alph=false и alph=true пишешь, соответственно, return false и return true.
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
15.03.2010, 18:08
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
bool func_(const char *beg){
    char id = *beg;
    for( ; *beg ; ++beg, ++id)
        if(*beg != id) return false;
    return true;
}
 
int main(){
    const char *s1 = "abcd";
    const char *s2 = "adbc";
 
    if(func_(s1)) std::cout << "Ok...\n";
    if(func_(s2)) std::cout << "Error func_...\n";
 
    return 0;
}
http://codepad.org/n1VgbBJ2
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
15.03.2010, 18:14
ISergey, ошибочка...
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
15.03.2010, 18:14  [ТС]
ISergey, спасибо большое! а как на Си записать?
0
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
15.03.2010, 18:30
Nameless One, и в чем она заключается?.. Работа функции правильная..
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
ISergey, спасибо большое! а как на Си записать?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int func(char *beg){
    char id = *beg;
    for( ; *beg ; ++beg, ++id)
        if(*beg != id) return 0;
    return 1;
}
 
int main(){
    char *s1 = "abcd";
 
    printf("%s", (func(s1)? "Ok...\n" : "Error func_...\n")) ;
    
 
    return 0;
}
http://codepad.org/x5lxsyRC
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
15.03.2010, 18:36
Все дело в том, что и строка "abcd", и строка "abcz" являются упорядоченными по алфавиту. Но у Вас функция работает только для первого варианта (то есть только тогда, когда каждый следующий символ строки является последующим символом алфавита)

Добавлено через 2 минуты
А так работа функции, безусловно, правильная, и пример довольно интересный, просто мне кажется, что Вы немного не поняли задание
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
15.03.2010, 18:56
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
/*
*   Написать и протестировать функцию, которая определяет, располагаются ли буквы в заданной символьной строке 
*   в алфавитном порядке.
*/
 
/* возвращает 0, если буквы в алфавитном порядке */
int testStr(const char *s){
    const char *p;
    if ( !s || !*s )
        return EOF;
    for ( p = s + 1; *p && *p > *(p - 1); ++p )
        ;
    return *p;
}
 
int main(void){
    char str[BUFSIZ], *p;
    
    while ( 1 ){
        printf("String: ");
        if ( !fgets(str, BUFSIZ, stdin) )
            exit(1);
        if ( p = strrchr(str, '\n') )
            *p = '\0';
        if ( !*str )
            break;
        printf("%salphabetical sorted string.\n", ( testStr(str) ) ? "No, is not " : "Yes, it is ");
    }
    
    exit(0);
}
1
Maniac
Эксперт С++
 Аватар для ISergey
1465 / 966 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
15.03.2010, 19:10
Цитата Сообщение от Nameless One Посмотреть сообщение
Все дело в том, что и строка "abcd", и строка "abcz" являются упорядоченными по алфавиту. Но у Вас функция работает только для первого варианта (то есть только тогда, когда каждый следующий символ строки является последующим символом алфавита)
Понял.. Спасибо за замечание..
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
15.03.2010, 19:15  [ТС]
easybudda, спасибо будда!) вы как всегда кстати!) а не могли бы вы мне расписать код? fgets,str, BUFSIZ, stdin вот это не понятно.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
15.03.2010, 19:35
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
fgets,str, BUFSIZ, stdin
fgets - функция, читающая строку из файла.
str[BUFSIZ] - массив символов размером BUFSIZ (константа, определённая в stdio, достаточная для того, чтобы быть размером строки)
stdin - стандартный файл ввода.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2010, 19:35
Помогаю со студенческими работами здесь

Дана строка символов. Распечатать ее в обратном порядке, сохранив лишь порядок следования цифр
помогите плиз решить задачу по с++. 9. Дана строка символов. Распечатать ее в обратном порядке, сохранив лишь порядок следования цифр...

Порядок отрицательных членов изменить на обратный, порядок неотрицательных сохранить
Задача (нужно все 3 пункта в 1 программе сделать) Прошу Помочь В условиях задания 3 а) порядок отрицательных членов изменить на...

Вывести алфавитный указатель к этому тексту
Вводится текст, то есть последовательность строк, до пустой строки. Вывести алфавитный указатель к этому тексту, то есть напечатать...

Дана строка,если слова упорядочены вывести "yes", иначе вывести первое слово, нарушающее алфавитный порядок
Дана строка. Если слова в ней упорядочены по алфавиту, то вывести 'yes', иначе вывести первое слово, нарушающее алфавитный порядок. ...

Алфавитный порядок
Салют народ!!! Меня очень заинтересовала одна задачка, друг сказал, что она элементарная. Но мне почему-то так не кажется(( Учитывая...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru