Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум C (Си) > Форум C для начинающих
Восстановить пароль Регистрация

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

Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а».
Старый 22.12.2012, 18:23   #2
BACKSEET
Новичок
 
Регистрация: 03.11.2010
Сообщений: 16
Репутация: 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. Вопросы начинающих программистов по СИ. Помощь в решении задач.
Дана целочисленная квадратная матрица. Определить сумму элементов в тех строках, которые не содержат отрицательных элементов 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
Цитата Сообщение от 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)
Код 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
Google
Объявления
1. Дана строка символов до точки. Удалить из нее все слова, начинающиеся с буквы «а» / C для начинающих

Старый 23.12.2012, 14:43  [ТС]   #5
tyrbotroll
Форумчанин
 
Регистрация: 03.11.2012
Сообщений: 77
Репутация: 0 (0)
Записей в блоге: 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)
Исправил

Код 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
Все работает,спасибо за помощь
Старый 23.12.2012, 20:24
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
C для начинающих Ошибка в коде(Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.)
Задание такое: Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом. Где тут ошибка? #include <stdio.h> #include <conio.h> #include <string.h> #include <ctype.h> int main(void) { char str, newst, shag=' ', *s; unsigned int...
frank_lampard
С++ для начинающих Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом
Помогите составить данную программу: Дана строка символов. Удалить из нее все слова нечетной длины. Слова отделяются друг от друга одним пробелом.
frank_lampard
Turbo Pascal дана строка символов, состоящая из слов, слова разделены между собой пробелами. Удалить из строки все слова, начинающиеся с цифры
Заранее спасибо:)
ulx05
Turbo Pascal Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы
2. Дана строка символов, удалить из нее все слова, начинающиеся с заданной буквы.
Promyst
Pascal ABC Дана строка символов.Удалить из нее все слова, имеющие нечетную длинну
Дана строка символов.Удалить из нее все слова, имеющие нечетную длинну. Словами считать группы символов,разделенные друг от друга пробелами.
:DeD
Опции темы

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

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