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

Строки - C++

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

C++ Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки C++
Строки. Вывести на печать то слово этой строки, которое по алфавиту предшествует всем другим C++
C++ Вывести на экран все строки данного массива одну за другой в виде целой строки
C++ Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
22.01.2010, 01:07     Строки #2
1 - считаешь количество слов по пробелам, и заводишь счетчик сразу же на количество букв от пробела до пробела для подсчета количества букв в словах
2 - разница между маленькой и заглавной буквой вроде бы 53 символа, так что просто прибавляй 53 и все
3 - в третьей части сверяй две строки по буквам и вырезай те буквы которые уже использовал
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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);
}
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 или нет?
Заранее благодарен.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2010, 15:05     Строки #5
Цитата Сообщение от Leonus89 Посмотреть сообщение
#define SPCHARS " ,.\t\n" - это что?
это определение набора символов, по которому строка делится на слова функцией strtok()
Цитата Сообщение от Leonus89 Посмотреть сообщение
#define VOWELS "aeiou" объявляет гласные буквы?
ага
Цитата Сообщение от Leonus89 Посмотреть сообщение
Можно применить strcmp или нет?
где?
Leonus89
0 / 0 / 0
Регистрация: 24.11.2009
Сообщений: 24
22.01.2010, 18:34  [ТС]     Строки #6
вообще в проге?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2010, 18:40     Строки
Еще ссылки по теме:

Как сделать так, что бы длинна строки сама менялась при вводе строки? C++
C++ В динамической матрице целых чисел добавить строки после строки, содержащей простое число
C++ Определить, верно ли утверждение: сумма элементов каждой i-ой строки матрицы больше суммы (i-1)-ой строки

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2010, 18:40     Строки #7
Leonus89, да вроде незачем... strcmp() строки сравнивает. Ни в одном из трёх примеров так и не придумал, куда её приделать. Вот когда нужно две строки сравнить - тогда пожалуйста...
Yandex
Объявления
22.01.2010, 18:40     Строки
Ответ Создать тему

Метки
Строки
Опции темы

Текущее время: 12:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru