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

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

Восстановить пароль Регистрация
 
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:27     Вывод всех символов строки, расположенных после первого символа ":" #1
Есть задача:
С клавиатуры вводится строка. Составить программу, которая выводит на экран
все символы, расположенные после первого символа ":"; подсчитывает количество предложений,
содержащие нечетное количество слов; удаляет из текста все слова, которые расположены после
ком.

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

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

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++ Составить программу, которая при вводе символа с клавиатуры выво-дит "латинская буква" при вводе латинской буквы и "не латинская бук-ва" во всех остал
C++ Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ"
Вывод цифр с помощью символа "*" C++
Удалить из двусвязного списка все элементы до первого "*" и после последнего "*" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
02.11.2012, 18:47  [ТС]     Вывод всех символов строки, расположенных после первого символа ":" #2
Почему не работает
C++
1
gets(str);
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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
 Аватар для BumerangSP
4283 / 1405 / 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
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
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;
...И да, обрати внимание на мою подпись!
Yandex
Объявления
02.11.2012, 18:59     Вывод всех символов строки, расположенных после первого символа ":"
Ответ Создать тему
Опции темы

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