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

Удаление знаков препинания - C++

Восстановить пароль Регистрация
 
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
01.03.2014, 15:12     Удаление знаков препинания #1
Удалить в строке все знаки препинания.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
void main()
{   
    char str [100];
    gets(str);
    char p;
    for (int i=strlen(str); i>=0; i--)
    {
        if (str[i]==','|| str[i] == '?'||str[i] == '.')
            for(int j=i; j<strlen(str); j++)
               {p=str[j];
               str[j]=str[j+1];
               str[j+1]=p;}
    }
 
puts(str);
}
Смотрится код ка кто у меня глупо, как можно еще реализовать?
Видел есть вроде функ "int iswspace" которая проверяет, является ли символ пунктуацией, но как ей пользоваться я не знаю.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2014, 15:12     Удаление знаков препинания
Посмотрите здесь:

C++ Расстановка знаков препинания
Подсчёт количества знаков препинания в строке C++
C++ Подсчитать количество знаков препинания в строке.
Дано предложение без знаков препинания C++
C++ Кол-во знаков препинания и букв в строке
C++ Определить кол-во знаков препинания в тексте
C++ Подсчитать количество знаков препинания в строке
C++ Найти количество знаков препинания в строке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
01.03.2014, 15:44     Удаление знаков препинания #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну вообще, знаки препинания это не только запятая, точка и знак вопроса. Это всевозможные кавычки, скобки, слэши и прочее. Проще удалять всё, что не является буквой или цифрой

Добавлено через 8 минут
Если всё же так хочется использовать функцию "уже готовую", то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <ctype.h>
int main ()
{
  int i=0;
  char str[] = "T,as.1?e>?\n";
  while (str[i])
  {
    if (!iswpunct(str[i]))
        putchar(str[i]);
    i++;
  }
}
вывод на экран не пунктуации
Yandex
Объявления
01.03.2014, 15:44     Удаление знаков препинания
Ответ Создать тему
Опции темы

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