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

Строковые данные - C++

Восстановить пароль Регистрация
 
leha-demi
0 / 0 / 0
Регистрация: 06.11.2010
Сообщений: 125
30.05.2011, 22:52     Строковые данные #1
Всем привет)
Можете пож. подсказать что делает функция
!strchr самая первая, и memmove и p += n;

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
#include "stdafx.h"
#include <iostream>
#include <cstdio>
#include <string.h>
#include <stdio.h>
#define DELIM " ,.?!:;"
#include <conio.h>
using namespace std;
 
int main()
{   int n;
    char s[256];
    char* p;
 
    gets(s);
    p = s;
 
    while(*p)
    {
        if(!strchr(DELIM,*p)) // Вот это
        {
            n = 0;
            do ++n; while(!strchr(DELIM,*(p + n))); 
            if(*(p + n - 1) == 'a') memmove(p, p + n, strlen(p + n) + 1); // Memmove (и это)
            else p+= n; // И это)
        }
        else ++p;
    }
 
    puts(s);
 _getch();
    return 0;
}
Спасибо за ваши ответы..)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 22:52     Строковые данные
Посмотрите здесь:

C++ строковые
C++ C++ строковые
Строковые данные C++
C++ Строковые данные
Строковые массивы. C++
Строковые переменные. C++
C++ Cb++, Символьные и строковые данные в С++
C++ Символьные и строковые данные

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
30.05.2011, 23:58     Строковые данные #2
Попробую помочь,

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
#define DELIM " ,.?!:;"
#include <conio.h>
using namespace std;
 
int main()
{   int n;
    char s[256];
    char* p;
 
    gets(s);
    p = s;
 
    while(*p)
    {
        if(!strchr(DELIM,*p)) // если символ массива  -  ,.?!:;    то
        {
            n = 0;
            do ++n; while(!strchr(DELIM,*(p + n))); до тех пор пока символ не  ,.?!:;
            if(*(p + n - 1) == 'a') memmove(p, p + n, strlen(p + n) + 1); // Memmove (и это) если в конце слова буква "а" то удалить это слово, уменьшив при этом строку на кол-во букв в слове. 
            else p+= n; // И это) иначе переход на следующее слово.
        }
        else ++p;
    }
 
    puts(s);
 _getch();
    return 0;
}
Yandex
Объявления
30.05.2011, 23:58     Строковые данные
Ответ Создать тему
Опции темы

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