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

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

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

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

03.11.2012, 23:21. Просмотров 392. Ответов 4
Метки нет (Все метки)

Добрый вечер всем! У меня такая проблема: нужно написать программу для удаления слова (одного слова) после запятой, программа удаляет слова но только если эти слова находятся вплотную к кому, а когда Вот так 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;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 23:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить элементы после запятой (дополнить код) (C++):

Удалить из текста все слова, которые расположены после запятой - C++
Нужно написать программу, которая удаляет из текста все слова, которые расположены после ком. Я здесь несколько прикинул, но не понимаю...

В строке имеется одна точка с запятой (;). Подсчитать количество символов до точки с запятой и после нее. - C++
В строке имеется одна точка с запятой ( ; ). Подсчитать количество символов до точки с запятой и после нее.

если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном случае-удалить отрицательные элементы.после удален - C++
задан массив Х целых чисел. если массив не является знакочередующимся,то удалить из массива все положительные числа,в противном...

Удалить элементы из строки (исправить код) - C++
Я написал программу для удаления текста после первой запятой, а мне НЕОБХОДИМО чтобы удалялось только первое слово, например: aaa, bbb...

Дополнить код - C++
Добрый день, есть вот такой вот код, который позволяет ввод информации о маршрутном такси (номер, стоимость, вид транспорта), где стоимость...

Почему после 51-го знака после запятой выводятся одни нули? - C++
В продолжение темы: тот же код, только с увеличенным количеством знаков после запятой: #include &lt;iostream&gt; #include &lt;windows.h&gt;...

4
JlightenDev_C++
62 / 62 / 7
Регистрация: 12.08.2012
Сообщений: 150
03.11.2012, 23:22 #2
Я же писал тебе код рабочий.
P.S. i+2 поставь во вложенном цикле
0
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
03.11.2012, 23:25  [ТС] #3
Цитата Сообщение от JlightenDev_C++ Посмотреть сообщение
P.S. i+2 поставь во вложенном цикле
поставил, но теперь одну букву оставляет когда так ааааа,ппппп то работает плохо!
0
JlightenDev_C++
62 / 62 / 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;
}
0
vasiliy21
26 / 26 / 2
Регистрация: 24.10.2012
Сообщений: 135
03.11.2012, 23:38  [ТС] #5
Теперь работает, но как поставить 3,4,5 ... пробелов оно дальше хорошо работать небеде! А мне нужна универсальная программа!)
0
03.11.2012, 23:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 23:38
Привет! Вот еще темы с ответами:

Удалить все элементы файла, расположенные после первого символа пробела - C++
Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после первого символа пробела,...

Удалить элементы кратные 7. Добавить после каждого элемента массива элемент со значенем 0. - C++
// Кузя 2.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; ...

Найти максимальный элемент массива, и удалить после него все нечетные элементы - C++
В массиве A(n) определить максимальный элемент .удалить после максимального все нечетные элементы

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


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

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

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