Форум программистов, компьютерный форум CyberForum.ru
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
22.12.2012, 16:39     1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»
  #1
Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».
AdAgent
Объявления
22.12.2012, 16:39
BACKSEET
Новичок
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 16
22.12.2012, 18:23
  #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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[] = { "test1 asd test2 asdasd test3." };
    size_t i;
    char *pBegin, *pEnd;
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
 
    return 0;
}
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
22.12.2012, 19:50  [ТС]
  #3
Цитата Сообщение от BACKSEET Посмотреть сообщение
Код 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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[] = { "test1 asd test2 asdasd test3." };
    size_t i;
    char *pBegin, *pEnd;
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
 
    return 0;
}
а не мог бы переделать чтобы мы сами вводили строку а то у меня не получается.И прокоментируй пожалуйста последний цикл while а то я как то не очень понял
РостикUSA
Новичок
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
23.12.2012, 00:27
  #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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[20];
    size_t i;
    char *pBegin, *pEnd;
    printf ("Input your sentence:\n");
    gets ("%s",&str);
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
 
    return 0;
}
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
23.12.2012, 14:43  [ТС]
  #5
Цитата Сообщение от РостикUSA Посмотреть сообщение
Код 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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[20];
    size_t i;
    char *pBegin, *pEnd;
    printf ("Input your sentence:\n");
    gets ("%s",&str);
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
 
    return 0;
}
ошибка в 12 строчке глянь пожалуйста
РостикUSA
Новичок
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
23.12.2012, 20:02
  #6
Исправил

Код 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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
 
int main(void)
{
    char str[20];
    size_t i;
    char *pBegin, *pEnd;
    printf ("Input your sentence:\n");
    gets (str);
    for (i = 0; i < strlen(str); i++)
    {
        if ((str[i] == 'a' && i == 0) || (str[i] == 'a' && i > 0 && (ispunct(str[i - 1]) || isspace(str[i - 1]))))
        {
            pBegin = str + i;
            pEnd = pBegin;
            while (isalpha(*pEnd))
                ++pEnd;
            strcpy(pBegin, pEnd);
        }
    }
 
    puts(str);
    getch();
    return 0;
}
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
23.12.2012, 20:24  [ТС]     1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»
  #7
Все работает,спасибо за помощь
Yandex
Объявления
23.12.2012, 20:24
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Ответов Автор Дата
C (СИ) Дана строка символов. Удалить из нее все гласные буквы.
Доброго времени суток! Дана строка символов. Удалить из нее все гласные буквы.
C для начинающих 2 Alex53rus 23.04.2014 16:41
C (СИ) Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка
Доброго времени суток! Нужно решить такую задачу (желательно с блок-схемой): Дана строка символов до точки. Определить, сколько слов, состоящих из 5 и более символов, содержит данная строка.
C для начинающих 2 Alex53rus 17.04.2014 17:53
C (СИ) С Дана строка. Удалить из нее все подстроки delete
Помогите,пожалуйста,решить) Дана строка. Удалить из нее все подстроки delete.
C для начинающих 5 NoLimit 15.03.2013 00:16
C (СИ) Ошибка в коде(Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.)
Задание такое: Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом. Где тут ошибка? #include <stdio.h> #include <conio.h> #include...
C для начинающих 6 frank_lampard 20.12.2012 01:51
C (СИ) 2. Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы
Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы. Если нет – исправить.
C для начинающих 6 tyrbotroll 19.12.2012 15:22
C (СИ) Выделить из строки str1 все слова, начинающиеся с согласной буквы, а из строки str2 – слова, начинающиеся с гласной. Образовать строку str3, состоящую
Не получается написать программу. Помогите пожалуйста!) Нужно в с++
C для начинающих 0 АннаБелоусова 16.12.2012 16:10
C (СИ) Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Подчеркнуть все гласные буквы в строке.
C для начинающих 0 irek123 05.06.2012 08:51
C (СИ) Выделить из строки str1 все слова, начинающиеся с гласной буквы, а из строки str2 - слова, начинающиеся с согласной
Выделить из строки str1 все слова, начинающиеся с гласной буквы, а из строки str2 - слова, начинающиеся с согласной. Образовать строку str3, состоящую из выделенных слов обеих строк. В новой строке...
C для начинающих 1 про 16.05.2011 00:45
Опции темы

Текущее время: 07:31. Часовой пояс GMT +4.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.