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

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

Войти
Регистрация
Восстановить пароль
 
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
#1

Вывод всех символов строки, расположенных после первого символа ":" - C++

02.11.2012, 18:27. Просмотров 812. Ответов 5
Метки нет (Все метки)

Есть задача:
С клавиатуры вводится строка. Составить программу, которая выводит на экран
все символы, расположенные после первого символа ":"; подсчитывает количество предложений,
содержащие нечетное количество слов; удаляет из текста все слова, которые расположены после
ком.

Подскажите почему выводит этот ноль?

Вывод всех символов строки, расположенных после первого символа ":"

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
71
72
73
74
#include <iostream>
#include <string.h>
#include <conio.h>
 
const int n=10;
 
using namespace std;
 
void krapku(char []);
void koma(char []);
void kilkistneparnuxrechen(char[],int,int,int);
 
int main(){
    char str[n];
    krapku(str);
    char str1[n];
    koma(str1);
    
   int count = 0;
   int size; 
   int word = 1; ;
   char str2[100];  
   kilkistneparnuxrechen(str2,word,count,size);
getch();
return 0;
}
 
void krapku(char str[n])
{
     cout<<"vv string z : "<<endl;
     for(int i=0;i<n;i++)
       cin>>str[i];
    for(int i=0;i<n;i++){
        if(str[i]==':')
           for(int j=i+1;j<n;j++)
               cout<<str[j];
                          
        }
 }
void koma(char str1[n])
{
     cout<<endl;
     cout<<"vv string z ,"<<endl;
     int i=0;
    for( i=0;i<n;i++)
    cin>>str1[i];
    for(i=0;i<n;i++){ 
                       if(str1[i]==',')
                       for(int j=i;j<n;j++)
                       str1[j]='\0';
                       }
for( i=0;i<n;i++)
    cout<<str1[i];  
 }
 void kilkistneparnuxrechen(char str[100],int word,int count,int size){
{
    cout << endl;
    cout << "Enter string" << endl; 
    gets(str);  
    size = strlen(str);
    for (int i = 0; i < size; i++) 
    { 
        if(str[i] == ' ') 
            word++; 
        if(str[i] == '?' || str[i] == '!' || str[i] == '.') 
        { 
            if(word % 2 == 0) 
                count++; 
            word = 1; 
        } 
    } 
    cout << count << endl;
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод всех символов строки, расположенных после первого символа ":" (C++):

Заменить в последовательности символов после первого вхождения символа "+" все цифры на символ "-" - C++
Заменить в последовательности символов после первого вхождения символа &quot;+&quot;все цифры на символ &quot;-&quot;О_о Добавлено через 1 минуту что бы...

Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел - C++
Вставить пробел после каждого символа &quot;.&quot; &quot;,&quot; &quot;!&quot; или &quot;?&quot;, если за этими символами не следует пробел (т. е. следует любой символ, кроме...

На C++ в строке после символа - "+" поставить символ "*" и посчитать сколько "+" - C++
С++ Мы вводим вручную строку , (через cin &gt;&gt; )программа должна после каждого &quot;+&quot; поставить &quot;*&quot; потом посчитать сколько всего было &quot;+&quot;...

Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" - C++
Помогите написать программу: Дан двусвязный список, состоящий из n символов, два из которых &quot;*&quot;. Удалить из него все элементы до первого...

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ" - C++
Даны две строки. Если они начинаются с одинаковых символов, то напечатать &quot;ДА&quot;, иначе - &quot;НЕТ&quot;. (5)

Подсчитать в строке количество символов, меньших символа "К" - C++
Ввести строку символов. Подсчитать количество символов меньше символа «К». Вывести результат на экран. Помогите решить, пожалуйста.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:47  [ТС] #2
Почему не работает
C++
1
gets(str);
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.11.2012, 18:48 #3
C++
1
2
for(int i=0;i<n;i++)
       cin>>str[i];
Вы символы должны вводить, а не строку целиком.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:51  [ТС] #4
Но gets(str); должно работать все равно!
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.11.2012, 18:57 #5
Поставьте getchar(); перед gets. Нужно буфер очистить.

Добавлено через 1 минуту
И, раз уж нужно именно строку ввести, то надо исправить:
C++
1
2
for(int i=0;i<n;i++)
       cin>>str[i];
на:
C++
1
cin>>str;
В другой функции аналогично.
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
02.11.2012, 18:59 #6
Цитата Сообщение от vasiliy21 Посмотреть сообщение
Но gets(str); должно работать все равно!
видать какая-то фигня в буфере остаётся, надо его очистить, вот так:
C++
1
2
3
4
5
 void kilkistneparnuxrechen(char str[100],int word,int count,int size){
{
    cout << endl;
    fflush (stdin);
    cout << "Enter string" << endl;
...И да, обрати внимание на мою подпись!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 18:59
Привет! Вот еще темы с ответами:

Через каждые 5 символов добавить пробел и посчитать количество символа "X" - C++
Дан массив символов из 20 элементов. Через каждые 5 символов добавить пробел и посчитать количество символа &quot;X&quot; в массиве. Помогите...

Расположить элементы массива, лежащие до первого символа "к", в порядке, обратном алфавитному, и вывести на печать отсортирванный массив данных - C++
Срочно нужна помощь! Помогите написать код, очень прощу. Ввести с клавиатуры одномерный массив строк. Расположить элементы массива,...

Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал - C++
Составить программу, которая при вводе символа с клавиатуры выво-дит &quot;латинская буква&quot; при вводе латинской буквы и &quot;не латинская бук-ва&quot;...

Избавиться от всех пробелов до первого и после последнего символа в строке - C++
помогите, пожалуйста, написать главную main для этой функции и соответственно дописать 1ю строку void trimmed() { char* ps = s1; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.11.2012, 18:59
Ответ Создать тему
Опции темы

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