IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Сортировка строки
сообщение
Сообщение #1


Гость






извините, не могли бы вы помочь решить задачу:
Ввести с клавиатуры символьную строку. Длина строки не более 80 символов. путем пересылки символов из этой строки сформировать три новые строки: S1 - латинские буквы (строчные и прописные), S2 - цифры, S3 - остальные символы. Сформированные строки вывести на экран.

буду очень благодарен!!! give_rose.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата(Fee @ 26.10.2006 18:13) *

извините, не могли бы вы помочь решить задачу:
Ввести с клавиатуры символьную строку. Длина строки не более 80 символов. путем пересылки символов из этой строки сформировать три новые строки: S1 - латинские буквы (строчные и прописные), S2 - цифры, S3 - остальные символы. Сформированные строки вывести на экран.

буду очень благодарен!!! give_rose.gif

компилятор turbo c
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Так пойдет ?

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
char s[80], s1[80], s2[80], s3[80];

gets(s);

int n = strlen(s), a = 0, b = 0, c = 0;

for (int i = 0; i < n; i++)
if (isalpha(s[i])) s1[a++] = s[i];
else
if (isdigit(s[i])) s2[b++] = s[i];
else
s3[c++] = s[i];

s1[a] = s2[b] = s3[c] = '\0';

puts(s1);
puts(s2);
puts(s3);


return 0;
}


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






чет он ошибку выдает на int...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


картинка...


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






klem4, в чистом С нельзя перемешивать описание переменных с кодом, так что придется поменять местами эти 2 строки:

	gets(s);

int n = strlen(s), a = 0, b = 0, c = 0, i; /* и описание переменной i нужно сделать тут же */
, из цикла слово int убери...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


сделал все, как вы сказали:
# include <stdio.h>
# include <string.h>
# include <ctype.h>

int main(void)
{
char s[80], s1[80], s2[80], s3[80];


int n = strlen(s), a = 0, b = 0, c = 0, i;
gets(s);


for (i = 0; i < n; i++)
if (isalpha(s[i])) s1[a++] = s[i];
else
if (isdigit(s[i])) s2[b++] = s[i];
else
s3[c++] = s[i];

s1[a] = s2[b] = s3[c] = '\0';

puts(s1);
puts(s2);
puts(s3);


return 0;
}


запускаю программу... ввожу произвольную строку (что-то типо такого:fjak642jklfaDFdaf754), нажимаю enter и не чего не происходит... просто кидает опять к тексту....

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Нажми Alt + F5 для просмотра результатов...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


за alt+f5 спасибо smile.gif тока она не корректно работает...sad.gif
вот результаты:
fkdja;5423852034


fjsdka;534790%$#



fjaskl543$%fhdsfj


fdjask;fja4535fjdks
fdjaskfjaf
4535
;
fjasdk;lfja928jfdkslja$%#
fjasdklfjajfdks
928
;
fjdkasl453dfsjl%$#
fjdkasldfsjllja
453
%$#


выделенное - то что вводил я...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Уж не знаю что ты там наменял, у меня все работает нормально :



Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(klem4 @ 26.10.2006 21:09) *

Уж не знаю что ты там наменял, у меня все работает нормально :

а выложи пожалуйста свой код...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






blink.gif Да оно вообще работать не должно... Здесь длину строки-то вычислять не надо... (обрати внимание, strlen - было ПЕРЕД вводом строки !!!)
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
char s[80], s1[80], s2[80], s3[80];


int a = 0, b = 0, c = 0, i;
gets(s);


for (i = 0; s[i] != '\0'; i++)
if (isalpha(s[i])) s1[a++] = s[i];
else
if (isdigit(s[i])) s2[b++] = s[i];
else
s3[c++] = s[i];

s1[a] = '\0'; s2[b] = '\0'; s3[c] = '\0';

puts(s1);
puts(s2);
puts(s3);


return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


VOLVO и KLEM4 боооооооольшое вам спасибо, просто выручили меня...... smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name