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

Удалить элементы после запятой (дополнить код) - C++

Восстановить пароль Регистрация
 
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
03.11.2012, 23:21     Удалить элементы после запятой (дополнить код) #1
Добрый вечер всем! У меня такая проблема: нужно написать программу для удаления слова (одного слова) после запятой, программа удаляет слова но только если эти слова находятся вплотную к кому, а когда Вот так aaa, aaaa то не удаляет, как это исправить?

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
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
int main(){
    char str[200] = {};
    cin.get(str,200);
    int size = strlen(str);
    for(int i = 0; i < size; i++){
            if(str[i] == ','){
                      for(int j = i+1; j < size; j++){
                              if(str[j] == ' '){
                                        break;
                                        }
                                        str[j] = ' ';
                              }
                      }
            cout << str[i];
    }
getch();
return 0;
}
Добавлено через 53 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
int main(){
    char str[200] ;
    cin.get(str,200);
    int size = strlen(str);
    for(int i = 0; i < size; i++){
            if(str[i] != '0' && str[i] != ' '){ 
                      cout<<str[i]; break;           
    }
}
getch();
return 0;
}
Добавлено через 19 минут
Я немножко усовершенствовал, но все равно эта проблема осталась!)
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 <string.h>
#include <conio.h>
#include <iostream.h>
 
 
void deletes(char *s, int pos);
 
int main()
{
char s[150];
int i;
gets(s);
 
 
int size = strlen(s);
    for(int i = 0; i < size; i++){
            if(s[i] == ','){
                      for(int j = i+1; j < size; j++){
                              if(s[j] == ' '){
                                        break;
                                        }
                                        s[j] = ' ';
                              }
                      }
            
    }
 
 
for (i = 0; i < strlen(s); i++)
 {  if ((s[i]==' ') && (s[i+1]==' '))
    deletes(s,i+1);
}
 cout <<s;
 getch();
}
 
 
void deletes(char *s, int pos)
{ int i;
if ((s[pos]== ' ') && (s[pos+1]== ' '))
{ deletes(s,pos+1); }
for (i = pos; i < strlen(s)-1; i++)
 {
  s[i]=s[i+1];
}
s[i]=0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 23:21     Удалить элементы после запятой (дополнить код)
Посмотрите здесь:

C++ В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее.
C++ Удалить элементы кратные 7. Добавить после каждого элемента массива элемент со значенем 0.
C++ если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален
C++ Удалить из текста все слова, которые расположены после запятой
Удалить элементы из строки (исправить код) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
03.11.2012, 23:22     Удалить элементы после запятой (дополнить код) #2
Я же писал тебе код рабочий.
P.S. i+2 поставь во вложенном цикле
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
03.11.2012, 23:25  [ТС]     Удалить элементы после запятой (дополнить код) #3
Цитата Сообщение от JlightenDev_C++ Посмотреть сообщение
P.S. i+2 поставь во вложенном цикле
поставил, но теперь одну букву оставляет когда так ааааа,ппппп то работает плохо!
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
03.11.2012, 23:31     Удалить элементы после запятой (дополнить код) #4
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
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
int main(){
    char str[200] = {};
    cin.get(str,200);
    int size = strlen(str);
    for(int i = 0; i < size; i++){
            if(str[i] == ','){
                      for(int j = i+2; j < size; j++){
                              if(str[j] == ' '){
                                        break;
                                        }
                                        str[j] = ' ';
                              }
                      }
            if(str[i] == ',' && str[i]-1 != ' '){
                      for(int j = i+1; j < size; j++){
                              if(str[j] == ' '){
                                        break;
                                        }
                                        str[j] = ' ';
                              }
                      }
            cout << str[i];
    }
getch();
return 0;
}
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
03.11.2012, 23:38  [ТС]     Удалить элементы после запятой (дополнить код) #5
Теперь работает, но как поставить 3,4,5 ... пробелов оно дальше хорошо работать небеде! А мне нужна универсальная программа!)
Yandex
Объявления
03.11.2012, 23:38     Удалить элементы после запятой (дополнить код)
Ответ Создать тему
Опции темы

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