powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / сортировка символов
42 сообщений из 42, показаны все 2 страниц
сортировка символов
    #34971658
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите ламеру..нужно решить задачу о сортировке символов в строке..какая существует функция для получения кода символа по самому символу..и наоборот...т.к. я думаю решить эту задачу методом пузырька..

Выходные данные
Строка с отсортированным порядком символов.

Пример входных данных
ajJGFghHfGHGHffsdgfgshdgfsdgfhsdgfgsdh

Пример выходных данных
FGGGHHHJadddddfffffffggggggghhhhjsssss
...
Рейтинг: 0 / 0
сортировка символов
    #34971677
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не думай, а начинай решать, а мы поможем
...
Рейтинг: 0 / 0
сортировка символов
    #34971700
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGкакая существует функция для получения кода символа по самому символу..и наоборотчто такое "сам символ" ? и что такое его код ? ты ж не на каком-нибудь пассале или бейсике пишешь :)
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сортировка символов
    #34971714
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGкакая существует функция для получения кода символа по самому символу..и наоборот...т

Это?

Код: plaintext
1.
2.
3.
4.
5.
char s[ 1024 ];
char b;

b = s[i];
s[i]=b;
...
Рейтинг: 0 / 0
сортировка символов
    #34971828
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в С/С++ символ - целочисленный тип
...
Рейтинг: 0 / 0
сортировка символов
    #34972005
1211212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
сортировка символов
    #34972074
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишу на С++..я перебираю последовательно каждый элемент строки,начиная с первого, и если код какого-либо символа больше чем у следующего,меняю местами..а если в с++ символ это целочисленный тип то буферная переменная будет int типа?
...
Рейтинг: 0 / 0
сортировка символов
    #34972089
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGто буферная переменная будет int типа?unsigned char
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сортировка символов
    #34972099
MeGGпишу на С++..я перебираю последовательно каждый элемент строки,начиная с первого, и если код какого-либо символа больше чем у следующего,меняю местами..а если в с++ символ это целочисленный тип то буферная переменная будет int типа?
Можно int (интервал значений от 0 до 4 млн или от -2млн до +2 млн), можно char (интервал значений от -128 до 127 или от 0 до 256)
...
Рейтинг: 0 / 0
сортировка символов
    #34972121
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С...кийМожно int можно char будут проблемы с символами, у которых код >127, надо приводить к unsigned
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сортировка символов
    #34972141
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так как же у i-го символа код узнать...:(или идея совсем неправильная..?
...
Рейтинг: 0 / 0
сортировка символов
    #34972206
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGтак как же у i-го символа код узнать...:(или идея совсем неправильная..?так это он и есть ты его уже знаешь. Код символа: symbcod = str , где str - исходная строка
...
Рейтинг: 0 / 0
сортировка символов
    #34972225
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, съел массив, гад
Код: plaintext
 unsigned char symbol_code = str[i] // где str - исходная строка 
...
Рейтинг: 0 / 0
сортировка символов
    #34972270
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да они тебяразводят ка хотят. В С char, wchar_t, short, int, long и long long все целочисленные типы, просто под них отводится разное количество байт. Кроме знаковых типов есть еще и беззнаковые(всегда положительные) Теперь собственно char положительные значения - англицкие буквы, отрицательные - национальные символы, если теже значения рассматривать как unsigned char? 0-127 англицкие символы 128-255 национальные символы. А теперь вперед и с песней
...
Рейтинг: 0 / 0
сортировка символов
    #34972385
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по моему мы недопонимаем друг друга..привожу аналог того что я хочу узнать.. (на Delphi):функция Ord позволяет определить код символа,который передается ей в качестве параметра..например в результате выполнения k:=Ord('*') переменная k будет содержать значение 42 - код символа '*'.
...
Рейтинг: 0 / 0
сортировка символов
    #34972396
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGint x='*';
ShowMessage(x);
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сортировка символов
    #34972419
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGнапример в результате выполнения k:=Ord('*') переменная k будет содержать значение 42 - код символа '*'.на си это выглядит так k='*'; – в k будет 42.
...
Рейтинг: 0 / 0
сортировка символов
    #34975216
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGпишу на С++..я перебираю последовательно каждый элемент строки,начиная с первого, и если код какого-либо символа больше чем у следующего,меняю местами..при таком алгоритме будет неправильно сортироваться НЕ английский язык, например русский
...
Рейтинг: 0 / 0
сортировка символов
    #34975532
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGG пишет:
> строке..какая существует функция для получения кода символа по самому
> символу..и наоборот...т.к. я думаю решить эту задачу методом пузырька..


Символ и его код - это одно и то же.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
сортировка символов
    #34976051
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш MeGGпишу на С++..я перебираю последовательно каждый элемент строки,начиная с первого, и если код какого-либо символа больше чем у следующего,меняю местами..при таком алгоритме будет неправильно сортироваться НЕ английский язык, например русский
Ага в кодировке KOI-8? Да еще неживая буква Ё будет впереди планеты всей
...
Рейтинг: 0 / 0
сортировка символов
    #34993819
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вобщем вот что я понаписал..:

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
#include <stdio.h>
#include <string.h>
#include <iostream.h>
int main(int argc, char* argv[])
{
char s[256]="";
int j,i,buf;
scanf("%s",&s);
if(s!="")
{
for(i=0;i<=(strlen(s)-1);i++)
{
for(j=1;j<=(strlen(s)-1);j++)
{
if(s[j]>s[j+1])
{ buf=s[j];
s[j]=s[j+1];
s[j+1]=buf;
}
}
}
printf("%s",s);
}
else
printf("");
return 0;
}

сортирует...но строку обрезает...т.е. не все символы...выводит только 9 символов,в любом случае(кроме когда меньше 9 или вобще пустая строка)..
подскажите что не так?
...
Рейтинг: 0 / 0
сортировка символов
    #34993986
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
j<=(strlen(s)-2)
...
Рейтинг: 0 / 0
сортировка символов
    #34994113
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогло,спасибо..но проверяющая система не принимает...предел времени...кто нибудь может предложить более эффективеый алгоритм?чтобы быстрее работала....?
...
Рейтинг: 0 / 0
сортировка символов
    #34994129
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGя думаю решить эту задачу методом пузырька..

Это не пузырек, а пузырьки, какие-то... ;)
...
Рейтинг: 0 / 0
сортировка символов
    #34994140
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGПомогло,спасибо..но проверяющая система не принимает...предел времени...кто нибудь может предложить более эффективеый алгоритм?чтобы быстрее работала....?

Для начала, попробуй нормальный пузырек, и убери постоянное вычесление длины строки:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 int len=strlen(s);
 for(i= 0 ;i<=len- 2 ;i++)
   {
      for(j=i+ 1 ;j<=len- 1 ;j++)
     {
        if(s[i]>s[j])
         { buf=s[j];
           s[j]=s[i];
           s[i]=buf;
         }
      }
    }
...
Рейтинг: 0 / 0
сортировка символов
    #34994143
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не <=, а <
...
Рейтинг: 0 / 0
сортировка символов
    #34994147
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhИ не <=, а <

Ой, :) попутался. Не надо.
...
Рейтинг: 0 / 0
сортировка символов
    #34994193
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таксовсем не сортирует..выводит первоначальную строку..
...
Рейтинг: 0 / 0
сортировка символов
    #34994240
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGтаксовсем не сортирует..выводит первоначальную строку..

Вранье. Сортирует на ура!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
    char s[ 256 ]="";
    int j, i, buf;
    scanf("%s",s);
    if(s != "") {
	int len=strlen(s);
	for(i= 0 ;i<=len- 2 ;i++) {
    	    for(j=i+ 1 ;j<=len- 1 ;j++) {
    		if(s[i]>s[j]) {
		    buf=s[j];
        	    s[j]=s[i];
        	    s[i]=buf;
        	}
    	    }
	}
	printf("%s",s);
    };
    return  0 ;
}
автор
jdsflak;jkl;sjfkjask;lfhdsklhfjhgkl;sadfnvkl;asdfadhkljdsahfkljsadkfl;jsadkflncsadklvnsdkal;hfklds'af;klsadhfkl;a
';;;;;;;;;aaaaaaaaaaaaacddddddddddddffffffffffffghhhhhhhjjjjjjjjkkkkkkkkkkkkkkkklllllllllllllllnnnsssssssssssssvv
...
Рейтинг: 0 / 0
сортировка символов
    #34994267
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так...в моей программе len-2 во внешнем цикле,а len-1 во вложенном...вроде и та и так сортирут...как правильно?;)
...
Рейтинг: 0 / 0
сортировка символов
    #34994278
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наоборот то есть...len-2 во вложенном..len-1 внешний.
...
Рейтинг: 0 / 0
сортировка символов
    #34994289
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGтак...в моей программе len-2 во внешнем цикле,а len-1 во вложенном...вроде и та и так сортирут...как правильно?;)

Да хоть len минус миллион в твоем коде.
...
Рейтинг: 0 / 0
сортировка символов
    #34994332
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мой вариант прокатилспасибо!!
...
Рейтинг: 0 / 0
сортировка символов
    #34994905
Bigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGпомогите ламеру..нужно решить задачу о сортировке символов в строке..какая существует функция для получения кода символа по самому символу..и наоборот...т.к. я думаю решить эту задачу методом пузырька..

Выходные данные
Строка с отсортированным порядком символов.

Пример входных данных
ajJGFghHfGHGHffsdgfgshdgfsdgfhsdgfgsdh

Пример выходных данных
FGGGHHHJadddddfffffffggggggghhhhjsssss

Может так извратиться :))
Код: plaintext
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.
#include <list>
#include <iostream>

int main()
{
	char  str[] = "dfgbxasdgdfDGFGFBCVbcvbfdgbcvbVC";
	char* p = str;
	std::cout << str <<std::endl;
	std::list<char> resault;
	resault.clear();
	do
	{
		resault.push_back(*p);
	}while(*(++p));
	resault.sort();
	std::list<char>::iterator it = resault.begin();
	for(unsigned int i =  0 ; i<resault.size(); i++)
	{
		str[i] = *(it++);
	}
	std::cout << str <<std::endl;
	char k;
	std::cin >> k;
	return  0 ;
}
...
Рейтинг: 0 / 0
сортировка символов
    #34994912
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BiggerМожет так извратиться :))

Это не по спортивному. ;)
...
Рейтинг: 0 / 0
сортировка символов
    #34994916
Bigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh BiggerМожет так извратиться :))

Это не по спортивному. ;)

Почему?
...
Рейтинг: 0 / 0
сортировка символов
    #34994919
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BiggerПочему?

У автора лаба, наверное, какая то...
...
Рейтинг: 0 / 0
сортировка символов
    #34994921
Bigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh BiggerПочему?

У автора лаба, наверное, какая то...

А здесь, самой сортировки и не видно :)
...
Рейтинг: 0 / 0
сортировка символов
    #34994922
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BiggerА здесь, самой сортировки и не видно :)

Поэтому не по спортивному. ;)
...
Рейтинг: 0 / 0
сортировка символов
    #34995481
MeGG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да,точно,лаба:)
...
Рейтинг: 0 / 0
сортировка символов
    #34995946
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MeGGмой вариант прокатилспасибо!!

Национальные символы пробовал туда вбивать? Нет?

А препод обязательно вобъёт... да еще и проверит, правильно ли буква Ё сортирутеся.

Всего.
...
Рейтинг: 0 / 0
сортировка символов
    #34995989
Табаки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton MeGGмой вариант прокатилспасибо!!

Национальные символы пробовал туда вбивать? Нет?

А препод обязательно вобъёт... да еще и проверит, правильно ли буква Ё сортирутеся.

Всего.
Да, да пренепременно вобъет, причем в KOI8
...
Рейтинг: 0 / 0
42 сообщений из 42, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / сортировка символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]