Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Colobas
1 / 1 / 0
Регистрация: 29.03.2014
Сообщений: 15
1

В символьной строке удалить все слова, которые содержат буквы, не входящие в разрешённый набор символов

29.03.2014, 09:53. Просмотров 734. Ответов 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
#include <stdio.h>
#include <string.h>
#define cenz 1
#define clear 0
 
 
 
int main(void)
{
    int nslv,kslv,flag,i,j,k,p;
    char str[100];
    i=0;
    j=0;
    p=0;
    flag=clear;
 
    gets(str); //poluchaem stroku vvodom
 
    while(str[i] != '/0') // gl.cikl -- cikl opredelenia nachala slova
    {
     if(str[i] == ' ')
      {
        nslv=i; //nomer nachala slova, vmeste s probelom
        p=nslv+1;
/*!*/   do //cikl opredelenia konca slova 
         {
          if (str[p] == ' ')
           {
            kslv=p; //nomer konca slova, vmeste s probelom
            //length=kslv-nslv+1;
           }
          ++p;
         }
/*!*/   while(str[p] != ' ');
         i=kslv;//dly togo, chtoby gl.cikl while nachal poisk sled.slova
 
    for(j=nslv; ((j <= kslv) && (str[j] != '/0')); j++) //proverka na cenzuru
        {
            if ((str[j] == 'z') || (str[j] == 'f'))
            {
                flag=cenz;
            }
        }
 
        if(flag == cenz) //esli cenzurno slovo, to perenosim symvoly za etim slovom na ego mesto.
        {   j = 1;
            while(str[kslv+j+1] != '/o')
            {
               str[nslv+j] = str[kslv+j];
               j++;
            }
            str[j+1] = '/0';
        }
 
 
 
 
 
      }
    else
    {
        i++; //esli cstr[i] != ' ', to smotrim cstr[i+1]
    }
 
  }
puts(str);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 09:53
Ответы с готовыми решениями:

Найти в строке слова, которые содержат все буквы слова
Дана строка символов, состоящая из слов, и слово. Разделители - пробелы. Найти...

В символьной строке удалить все слова, содержащие две подряд идущие гласные буквы
Здравствуйте, помогите пожалуйста напрсать программу, сам вообще ноль :(...

Вывести слова, которые начинаются с буквы 'с' и содержат более 4 символов
Дана стpока символов. Пpизнак конца стpоки - символ '\n' (пеpевод стpоки)....

Вывести слова в строке, которые содержат больше 6 символов
Привет. Пробывал использовать strlen для подсчета количества символов,но...

Напечатать все слова предложения, в которые входят буквы, входящие в слово шина
Вот собственно задание: Вот код:#include &lt;stdio.h&gt; #include &lt;locale.h&gt;...

1
easybudda
Модератор
Эксперт CЭксперт С++
10148 / 6055 / 1522
Регистрация: 25.07.2009
Сообщений: 11,476
30.03.2014, 14:36 2
Colobas, пример, как можно из строки вывести только натуральные числа и нули:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
#define DIGITS "0123456789"
 
int main(void) {
    char buf[BUFSIZ], * p;
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' && printf("Natural numbers (and possible zeros):\n") )
        for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) )
            if ( strlen(p) == strspn(p, DIGITS) )
                printf("%s\n", p);
    
    return 0;
}
Код
[andrew@easybook strings]$ gcc -o numbers_from_string numbers_from_string.c 
[andrew@easybook strings]$ ./numbers_from_string 
String: 444 dfd 503vb 666 00 e2
Natural numbers (and possible zeros):
444
666
00
String:
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2014, 14:36

Удалить в символьной строке все слова, по длине большие, чем N
задание: удалить в символьной строке все слова, по длине большие, чем N(N...

В символьной строке удалить все слова, начинающиеся и заканчивающиеся на одну и ту же букву
Здраствуйте помогите найти ошибку пожалуйста. Задача такова: в символьной...

В символьной строке удалить все слова, начинающиеся и заканчивающиеся на одну и ту же букву
Люди помогите написать программу на языке C(Cu), в символьной строке удалить...


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

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

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