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

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

Войти
Регистрация
Восстановить пароль
 
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

Строка - C++

26.01.2010, 09:47. Просмотров 555. Ответов 3
Метки нет (Все метки)

Дана строка-предложение на русском языке. Вывести самое короткое слово в предложении. Если таких слов несколько-то вывести последнее из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/ концом строки.

надо на си. Строку вводить с клавиатуры.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2010, 09:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строка (C++):

Дана строка. Подсчитать сколько раз первая строка входит во вторую - C++
Дана строка. Подсчитать сколько раз первая строка входит во вторую. Например: вводим "при" (строка должна вводиться с клавиатуры, как на...

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

Почему строка, считанная из файла и такая же строка в программе не равны, хотя они, вроде бы, одинаковы? - C++
Есть две строки. MSK="Москва" и from, считанная из текстовика, через getline Для проверки вывожу эти обе строки, на первый взгляд...

дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. - C++
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка...

Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо и справа н - C++
Дана строка символов до точки. Составить программу, проверяющую, является ли данная строка палиндромом, т. е. читается ли она слева направо...

Даны строка S, символ C и строка S0. Необходимо после каждого вхождения символа C в строку S вставить строку S0 - C++
Есть код... string s, s0; char c; cout << "Введите строку s, s0 и символ c: "; getline(cin, s); ...

3
Genius Ignat
1237 / 775 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
26.01.2010, 10:47 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define H 6
#define W 6
 
void main(){
char str[] = "V CHAFD LKR PP KK FXJJ";
int count  = 0;                //счётчик символов в слове
unsigned int posStr = 0;       //позиция в строке
 
unsigned lenght = strlen(str);          //длинна строки
 
 
char matrix[H][W] = {0};
//Считываем все слова в матрицу
int i =0 ,j =0;
unsigned int p = 0;
for(i=0;i<H;i++){
    p=posStr;
    for(j=0;p<strlen(str);j++,p++){
            if(str[p]==' '){
            posStr=p;
            posStr++;
            p = lenght;
            continue;
            }
            if(str[p]!=' ')matrix[i][j]=str[p];  //записываем в строку
        
    }
 
    
}
 
 
//Выводим собранное
for(int u=0;u<H;u++){
    for(int k=0;k<W;k++){
printf(" ");printf("%c",matrix[u][k]);
 
    }
printf("\n");
}
 
 
 
}
1
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
26.01.2010, 10:55  [ТС] #3
Надо в общем виде с гетс. Идей вообще нету(
1
Genius Ignat
1237 / 775 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
26.01.2010, 11:52 #4
Попробуй в gets сам это не сложно, только чтоб в строке не более 20 символов.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define H 6
#define W 6
 
void main(){
char str[] = "V CHAFD LKR PP KK FXJJ";
 
 
int count  = 0;                //счётчик символов в слове
unsigned int posStr = 0;       //позиция в строке
 
unsigned lenght = strlen(str);          //длинна строки
 
 
char matrix[H][W] = {0};
//Считываем всё слово в матрицу
int i =0 ,j =0;
unsigned int p = 0;
for(i=0;i<H;i++){
    p=posStr;
    for(j=0;p<strlen(str);j++,p++){
            if(str[p]==' '){
            posStr=p;
            posStr++;
            p = lenght;
            continue;
            }
            if(str[p]!=' ')matrix[i][j]=str[p];  //записываем в строку
        
    }
 
    
}
//Выводим собранное
for(int u=0;u<H;u++){
    for(int k=0;k<W;k++){
printf(" ");printf("%c",matrix[u][k]);
 
    }
printf("\n");
}
 
int mcount = 2;  //максимальное кол-во в строке
int posMin = 0;      //позиция строки с минимальным кол-вом символов
 
//Еще самое короткое слова в матрице
for(i=0;i<H;i++){
    for(j=0;j<W;j++){
        if(matrix[i][j]!=' '){
        count++;
        }
 
    }
if(count<mcount){
mcount = count;       //получаем максимальное кол-во
posMin = i;
}
 
}
//выводим строку через матрицу
for(int r = 0;r<W;r++)
printf("%c",matrix[posMin][r]);
 
 
}
Добавлено через 17 минут
Сейчас тебе c gets и pust будет

Добавлено через 13 минут
Вот кое что
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
 
#define H 10
#define W 10
 
void main(){
char str[26];
 
puts("Input string\t");        //введи строку максимум 90 символов
gets(str);                     //получаем в строку
 
 
int count  = 0;                //счётчик символов в слове
unsigned int posStr = 0;       //позиция в строке
unsigned lenght = strlen(str);          //длинна строки
char matrix[H][W] = {0};
//Считываем всё слово в матрицу
int i =0 ,j =0;
unsigned int p = 0;
for(i=0;i<H;i++){
    p=posStr;
    for(j=0;p<strlen(str);j++,p++){
            if(str[p]==' '){
            posStr=p;
            posStr++;
            p = lenght;
            matrix[i][j] ='\0';
            continue;
            }
            if(str[p]!=' ')matrix[i][j]=str[p];  //записываем в строку
        
    }
 
    
}
//Выводим собранное
for(int u=0;u<H;u++){
    for(int k=0;k<W;k++){
printf(" ");printf("%c",matrix[u][k]);
 
    }
printf("\n");
}
 
int mcount = 1000;   //максимальное кол-во в строке
int posMin = 0;      //позиция строки с минимальным кол-вом символов
 
//Еще самое короткое слова в матрице
for(i=0;i<H;i++){
    for(j=0;j<W;j++){
        if(matrix[i][j]!='\0'){
        count++;
        }
 
    }
 
if(count<=mcount){
mcount = count;       //получаем максимальное кол-во
posMin = i;
}
count = 0;
}
//выводим строку через матрицу
for(int r = 0;r<W;r++)
printf("%c",matrix[posMin][r]);
 
}
Добавлено через 13 минут
Длинна одного слова не должна превышать 10, количество слов не более 10
Если хочешь по другому по меняй размеры матрицы.
1
26.01.2010, 11:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2010, 11:52
Привет! Вот еще темы с ответами:

Преобразование строка-число-строка - C++
Здравствуйте, можете объяснить или показать на примере, как можно из строки извлечь числа, чтобы потом можно было с ними работать и каких...

Строка string и строка char - C++
Ребят помогиме. В общем задание такое дана строка типа string и строка char которая содержит символ к. В общем если в строке типа String ...

Создать класс строка и производный класс битовая строка, не работает переопределение операций - C++
Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде работает но вот 1 задание к нему неработает...

Строка - C++
Спасите.... Написать нужно... Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию.


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

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

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