Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
22.12.2012, 16:39   #1
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а» / C для начинающих

Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».
22.12.2012, 16:39
AdAgent
Объявления
22.12.2012, 18:23   #2
BACKSEET
Новичок
1 / 1 / 0
Регистрация: 03.11.2010
Сообщений: 16
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
#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;
}
Другие темы раздела
Дана целочисленная квадратная матрица. Определить сумму элементов в тех строках, которые не содержат отрицательных элементов C (СИ)
Собственно,вот задание: Дана целочисленная квадратная матрица. Определить сумму элементов в тех строках, которые не содержат отрицательных элементов. Вот моя наработка: const int n =5; int F (int arr) { int sum, max; for (int i = 0; i <n; i++) {
C (СИ) Работа с текстом
Дан текст. Удалить все слова, длина которых меньше 3 символов. Все слова, длина которых больше 3 символов, объединить в одно. В конце строки вывести сумму чисел, встречающихся в строке.
22.12.2012, 19:50  [ТС]   #3
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»

Цитата Сообщение от 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 а то я как то не очень понял
23.12.2012, 00:27   #4
РостикUSA
Новичок
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
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
#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;
}
23.12.2012, 00:27
AdAgent
Объявления
23.12.2012, 14:43  [ТС]   #5
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а»

Цитата Сообщение от Ростик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 строчке глянь пожалуйста
23.12.2012, 20:02   #6
РостикUSA
Новичок
3 / 3 / 0
Регистрация: 29.10.2012
Сообщений: 41
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
#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;
}
23.12.2012, 20:24  [ТС]   #7
tyrbotroll
Форумчанин
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 77
Записей в блоге: 1
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а» / C для начинающих

Все работает,спасибо за помощь
23.12.2012, 20:24
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C (СИ) Дана строка символов. Удалить из нее все гласные буквы.
Доброго времени суток! Дана строка символов. Удалить из нее все гласные буквы.
C для начинающих Alex53rus 23.04.2014 16:41
C++ Дана строка символов. Удалить из нее все слова нечетной длины
Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом
С++ для начинающих GAZ66 26.01.2013 18:48
C (СИ) Ошибка в коде(Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.)
Задание такое: Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом. Где тут ошибка? #include <stdio.h> #include <conio.h> #include <string.h> #include <ctype.h> int main(void) { char str, newst, shag=' ', *s; unsigned int...
C для начинающих frank_lampard 20.12.2012 01:51
C (СИ) 2. Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы
Дана символьная строка. Проверить, все ли слова после точки начинаются с заглавной буквы. Если нет – исправить.
C для начинающих tyrbotroll 19.12.2012 15:22
Turbo Pascal Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы
2. Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы.
Turbo Pascal Promyst 03.06.2012 19:43
Опции темы

Текущее время: 12:45. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.