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

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

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

Строки - C++

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

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

Строка: Определить местоположение символа первой строки,который первым совпал с одним из символов второй строки. C++
C++ Заданы 2 строки. Определить местоположение символа первой строки, который первым не совпал с одним из символов второй
Из заданной пользователем строки сформулируйте новую, добавив пробел перед каждым символом строки кроме пробела C++
Сформировать строку, считая числа начальной строки соответствующими ASCII-кодами символов результирующей строки C++
Записать все слова символьной строки, чтобы каждое слово было с новой строки, и в отдельной переменной C++
C++ Для заданной строки построить строку, в которой содержаться только буквы латинского алфавита исходной строки
C++ Каждый элемент строки матрицы представить как приращение по отношению к минимальному элементу этой же строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
22.01.2010, 01:07     Строки #2
1 - считаешь количество слов по пробелам, и заводишь счетчик сразу же на количество букв от пробела до пробела для подсчета количества букв в словах
2 - разница между маленькой и заглавной буквой вроде бы 53 символа, так что просто прибавляй 53 и все
3 - в третьей части сверяй две строки по буквам и вырезай те буквы которые уже использовал
easybudda
Эксперт С++
9438 / 5461 / 925
Регистрация: 25.07.2009
Сообщений: 10,481
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
Эксперт С++
9438 / 5461 / 925
Регистрация: 25.07.2009
Сообщений: 10,481
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++
Заменить элемент строки, лежащий на главной диагонали, произведением чётных положительных чисел этой строки C++
C++ В заданной квадратной матрице вывести индекс строки, полностью повторяющей все элементы первой строки

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

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

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