Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leonus89
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 24
#1

Строки - C++

22.01.2010, 00:51. Просмотров 784. Ответов 6

Помогите написать программы:
1) Дано предложение. Определить сколько слов состоят из не более чем четырех букв.
2) Дано предложение. Вывести его на экран, заменив каждую первую букву слов, начинающихся с гласной на прописную.
3) Даны две строки. Вывести буквы, встречающиеся и в той и в другой строках.
Буду очень благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 00:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: "Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
"Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

6
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
22.01.2010, 01:07 #2
1 - считаешь количество слов по пробелам, и заводишь счетчик сразу же на количество букв от пробела до пробела для подсчета количества букв в словах
2 - разница между маленькой и заглавной буквой вроде бы 53 символа, так что просто прибавляй 53 и все
3 - в третьей части сверяй две строки по буквам и вырезай те буквы которые уже использовал
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
22.01.2010, 01:37 #3
1.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
/* Дано предложение. Определить сколько слов состоят из не более чем четырех букв. */
#define STRLEN 128
#define WRDLEN 4
#define SPCHARS " ,.\t\n"
int main(void){
    char str[STRLEN], *p;
    int cnt;
    printf("String: ");
    if ( !fgets(str, STRLEN, stdin) )
        exit(1);
    for ( cnt = 0, p = strtok(str, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
        if ( strlen(p) == WRDLEN )
            ++cnt;
    printf("%d words long in %d characters.\n", cnt, WRDLEN);
    exit(0);
}
Добавлено через 10 минут
2.
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
 
/* Дано предложение. Вывести его на экран, заменив каждую первую букву слов, начинающихся с гласной на прописную. */
#define STRLEN 128
#define VOWELS "aeiou"
int main(void){
    char str[STRLEN], *p;
    int inword;
    printf("String: ");
    if ( !fgets(str, STRLEN, stdin) )
        exit(1);
    inword = 0;
    for ( p = str; *p; ++p ){
        if ( isspace(*p) || ispunct(*p) )
            inword = 0;
        else {
            if ( !inword && strchr(VOWELS, *p) )
                *p = toupper(*p);
            inword = 1;
        }
    }
    printf("%s", str);
    exit(0);
}
Добавлено через 17 минут
3.
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
    
/* Даны две строки. Вывести буквы, встречающиеся и в той и в другой строках. */
 
#define STRLEN 128
int main(void){
    char *p, str1[STRLEN], str2[STRLEN], result[STRLEN] = { 0 };
    
    printf("String1: ");
    if ( !fgets(str1, STRLEN, stdin) )
        exit(1);
    if ( p = strrchr(str1, '\n') )
        *p = '\0';
    printf("String2 ");
    if ( !fgets(str2, STRLEN, stdin) )
        exit(1);
    if ( p = strrchr(str2, '\n') )
        *p = '\0';
    for ( p = strpbrk(str1, str2); p != NULL; p = strpbrk(++p, str2) )
        if ( !strchr(result, *p) )
            result[strlen(result)] = *p;
    printf("Same characters: %s\n", result);
    exit(0);
}
1
Leonus89
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 24
22.01.2010, 12:16  [ТС] #4
А вы можете объяснить некоторые строчки?
1) с 13 по 16. #define SPCHARS " ,.\t\n" - это что?
2) #define VOWELS "aeiou" объявляет гласные буквы? с 17 по 22.
3) Можно применить strcmp или нет?
Заранее благодарен.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
22.01.2010, 15:05 #5
Цитата Сообщение от Leonus89 Посмотреть сообщение
#define SPCHARS " ,.\t\n" - это что?
это определение набора символов, по которому строка делится на слова функцией strtok()
Цитата Сообщение от Leonus89 Посмотреть сообщение
#define VOWELS "aeiou" объявляет гласные буквы?
ага
Цитата Сообщение от Leonus89 Посмотреть сообщение
Можно применить strcmp или нет?
где?
0
Leonus89
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 24
22.01.2010, 18:34  [ТС] #6
вообще в проге?
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
22.01.2010, 18:40 #7
Leonus89, да вроде незачем... strcmp() строки сравнивает. Ни в одном из трёх примеров так и не придумал, куда её приделать. Вот когда нужно две строки сравнить - тогда пожалуйста...
1
22.01.2010, 18:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2010, 18:40
Привет! Вот еще темы с ответами:

Вычислить длину введенной строки и вывести символы строки с четными индексами - C++
Напишите программу, которая требует ввода строки с клавиатуры. Программа вычисляет длину строки и выводит на экран только те символы...

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Прибавить ко всем элементам каждой строки максимальное значение этой строки - C++
добрый вечер! Помогите пожалуйста доработать код! Изменить текущий массив, прибавив ко всем элементам каждой строки максимальное...


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

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

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