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

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

Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».
22.12.2012, 16:39
AdAgent
Объявления
22.12.2012, 18:23   #2
BACKSEET
Новичок
Регистрация: 03.11.2010
Сообщений: 16
Репутация: 1 (1)
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
Форумчанин
Регистрация: 03.11.2012
Сообщений: 77
Репутация: 0 (0)
Записей в блоге: 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
Новичок
Регистрация: 29.10.2012
Сообщений: 41
Репутация: 3 (3)
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
Форумчанин
Регистрация: 03.11.2012
Сообщений: 77
Репутация: 0 (0)
Записей в блоге: 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
Новичок
Регистрация: 29.10.2012
Сообщений: 41
Репутация: 3 (3)
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
Форумчанин
Регистрация: 03.11.2012
Сообщений: 77
Репутация: 0 (0)
Записей в блоге: 1
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а» / C для начинающих

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

Похожие темы
Тема Раздел Автор Дата
C (СИ) Дана строка символов. Удалить из нее все гласные буквы.
Доброго времени суток! Дана строка символов. Удалить из нее все гласные буквы.
C для начинающих Alex53rus 23.04.2014 16:41
C++ Дана строка символов. Удалить из нее все слова нечетной длины
Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом
С++ для начинающих GAZ66 26.01.2013 18:48
Turbo Pascal дана строка символов, состоящая из слов, слова разделены между собой пробелами. Удалить из строки все слова, начинающиеся с цифры
Заранее спасибо:)
Turbo Pascal ulx05 23.08.2012 14:14
Turbo Pascal Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы
2. Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы.
Turbo Pascal Promyst 03.06.2012 19:43
Pascal ABC Дана строка символов.Удалить из нее все слова, имеющие нечетную длинну
Дана строка символов.Удалить из нее все слова, имеющие нечетную длинну. Словами считать группы символов,разделенные друг от друга пробелами.
Pascal ABC :DeD 27.03.2012 10:46
Опции темы

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

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