Автор |
Сообщение |
Mahmut
Репутация: 0
Возраст: 18
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 2
Стаж: 1 год
|
[] 11.10.2007 17:14 С/С++, работа со строками |
|
|
Люди,подскажите как реализовать на С подсчет гласных букв в символьной строке.Завтра сдавать лабораторку, а я по этой теме нигде ничего не могу найти
|
|
Вернуться к началу |
|
|
Lesha
Репутация: +2
Возраст: 23
Гороскоп:
Пол:
Сообщения: 196
Стаж: 1 год 5 месяцев
|
[] 11.10.2007 18:34 |
|
|
По ASCII коду. =)))
Хотя там даже можно просто сразу с буквой сравнивать.
посимвольный цикл - условие - счетчик.
|
|
Вернуться к началу |
|
|
Mahmut
Репутация: 0
Возраст: 18
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 2
Стаж: 1 год
|
|
Вернуться к началу |
|
|
Weman
Репутация: +5
Возраст: 20
Гороскоп:
Пол:
Сообщения: 536
Стаж: 1 год 11 месяцев
|
[] 11.10.2007 20:53 |
|
|
Создаешь символьный массив - в него записываешь все гласные буквы.
Далее по-символьно какжый символ исходной строкиу символов стравниваешь с массивом гласных - если нашел совпадение => увеличивай счетчик гласных букв; иначе => переходи к следующему элементу.
Все просто! =)
_________________ Завтранах-универсальный ответ на любую просьбу.
|
|
Вернуться к началу |
|
|
Mephistopheles
Репутация: –6
Пол:
Сообщения: 27
Стаж: 10 месяцев
|
[] 16.11.2007 19:44 |
|
|
Есть две задачи:
1)Ввести строку, вывести пословно на экран, но слова в обратном порядке.
2)Ввести строку, вывести ее предварительно удалив повторяющиеся слова.
Помогите, пжлста!!!
|
|
Вернуться к началу |
|
|
crazy hand
Модератор форума
Репутация: +2
Возраст: 71
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 297
Стаж: 1 год 1 месяц
|
[] 19.11.2007 12:42 |
|
|
Mephistopheles
Вот первая задача:
Код: #include <stdio.h>
#include <string.h>
#define LEN 32 // max number of characters
void main(void)
{
char line[LEN+1]; // source line
char result[LEN+1] = ""; // buffer
char *str; // word pointer
char sep[] = " ,-?:;*.+=/()\'[]|{}\\\"\r\t!\n"; // separators
printf("Pls, input a line(max length = 32):\n");
fgets(line, LEN, stdin);
str = strtok(line, sep);
while ( str )
{
memmove( result+strlen(str)+1, result, strlen(result) ); // move to right result string
memmove( result, str, strlen(str) ); // copy word to result string begining
result[strlen(str)] = '\n'; // separate words by '\n'
str = strtok( NULL, sep ); // getting new word
};
printf("%s",result);
}
Будет время - напишу вторую.
P.S.Не советую игнорировать сообщения модера. Я тебе сказал прочитать правила - а ты опять написал сообщение и снова оно не удовлетворяет правилам.
_________________ Правила раздела "Помоги студенту"
"В любом деле важнее всего исполнение" Joseph Addison
Последний раз редактировалось: crazy hand (19.11.2007 15:24), всего редактировалось 2 раз(а) |
|
Вернуться к началу |
|
|
Lesha
Репутация: +2
Возраст: 23
Гороскоп:
Пол:
Сообщения: 196
Стаж: 1 год 5 месяцев
|
[] 19.11.2007 15:12 |
|
|
В сепараторах точки и + не хватает.
И алгоритм вызывает некоторые вопросы.... Хотя я очень бегло смотрел, но все равно....
Просто интересно. Mephistopheles, ты с какого факультета и на какой кафедре учишься?
|
|
Вернуться к началу |
|
|
crazy hand
Модератор форума
Репутация: +2
Возраст: 71
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 297
Стаж: 1 год 1 месяц
|
[] 19.11.2007 15:26 |
|
|
Lesha
Сепараторы добавил, но это мелочь. Что конкретно не нравится в алгоритме?
_________________ Правила раздела "Помоги студенту"
"В любом деле важнее всего исполнение" Joseph Addison
|
|
Вернуться к началу |
|
|
crazy hand
Модератор форума
Репутация: +2
Возраст: 71
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 297
Стаж: 1 год 1 месяц
|
[] 20.11.2007 13:17 |
|
|
Mahmut
Возможно уже поздно, но тем не менее. Вот подсчет гласных букв:
Код: #include <stdio.h>
#include <string.h>
#define LEN 32 // max number of characters
void main(void)
{
char line[LEN+1]; // source line
int vcounter = 0;
char vowels[] = "eyuioaEYUIOA";
printf("Pls, input a line(max length = 32):\n");
fgets(line, LEN+1, stdin);
for(int i=0;i<strlen(line);i++)
{
if ( memchr( vowels, line[i], sizeof(vowels) ) )
vcounter++;
}
printf("%d\n", vcounter);
}
_________________ Правила раздела "Помоги студенту"
"В любом деле важнее всего исполнение" Joseph Addison
|
|
Вернуться к началу |
|
|
Кузя
Репутация: +2/–1
Возраст: 23
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 218
Стаж: 1 год 9 месяцев
|
[] 21.11.2007 0:27 |
|
|
Я в экстазе...
"Pls, inp line 32max\n" - еще короче будет
_________________ Только те, кто не обещают чудес и не становятся на пьедестал, приносят в мир добро.
|
|
Вернуться к началу |
|
|
Mephistopheles
Репутация: –6
Пол:
Сообщения: 27
Стаж: 10 месяцев
|
[] 21.11.2007 20:10 |
|
|
Спасибо за прогу.
Я с 5-го фака, кафедра 36(Комплексная защита объектов информатизации)
|
|
Вернуться к началу |
|
|
Sovie
Репутация: +20/–1
Пол:
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
|
[] 21.11.2007 21:02 |
|
|
Mephistopheles писал(а): Спасибо за прогу.
Я с 5-го фака, кафедра 36(Комплексная защита объектов информатизации)
Старайся, парень, дальше, поверь, легче не будет. С программированием в частности.
|
|
Вернуться к началу |
|
|
Lesha
Репутация: +2
Возраст: 23
Гороскоп:
Пол:
Сообщения: 196
Стаж: 1 год 5 месяцев
|
[] 22.11.2007 12:32 |
|
|
Н-да........... Mephistopheles, слушай Sovie. Дело говорит..........
З.Ы. я на этой кафедре аспирантеГ...
|
|
Вернуться к началу |
|
|
Mephistopheles
Репутация: –6
Пол:
Сообщения: 27
Стаж: 10 месяцев
|
[] 29.11.2007 18:11 |
|
|
Crazy Hand можешь объяснить как работает эта прога, в частности функция memmove, а то я че не догоняю?
|
|
Вернуться к началу |
|
|
Dremor
Репутация: 0
Возраст: 18
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 5
Стаж: 11 месяцев
|
[] 29.11.2007 22:01 |
|
|
9. Определите, является ли натуральное число x а) четным; б) кратным натуральному числу а.
Полскажите хотябы примерный алгоритм или операторы).
1-й курс, язык C, 2-й фак).
Заранее спс).
|
|
Вернуться к началу |
|
|
|
|