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

Помогите пожалуйста со строками в C - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как к обьекту прицепить массив?? http://www.cyberforum.ru/cpp-beginners/thread52931.html
Всем привет. Нужно создать обьект , класса STACK. И что б этот обьект содержал массив. Возможно ли что бы массив был параметром обьекта? Если возможно , то подскажите пожалуйста как это реализовать!
C++ 1 задачка на оператор while Начальный вклад в банке равен 1000 руб. Через каждый месяц размер вклада увеличивается на P процентов от имеющейся суммы ( P - вещественное число , 0<P<25 ). По данному P определить , через сколько месяцев размер вклада превысит 1100 руб., и вывести найденное количество месяцев K ( целое число ) и итоговый размер вклада S ( вещественное число ). Добавлено через 4 минуты #include <math.h>... http://www.cyberforum.ru/cpp-beginners/thread52908.html
Алгоритмы возведения числа в большую степень. C++
Здраствуйте ещё раз, уважаемые программисты! Сразу извинюсь за столь надоедливость, но поймите меня правильно, помочь больше некому =( Как только стану похожим на вас, обязательно буду помогать другим, так же как и вы!!! Огромное вам спасибо за то, что у меня есть возможность к вам обратиться со своими проблемами. И так, ближе к делу... Вот на данный момент меня интересует любой...
C++ матрици чисел
есть 2 задачи каторые нужно решить Задана матрица чисел: а Вычислить сумму элементов, образующих букву :Z Задана матрица чисел: а
C++ Сортировка массивов в С http://www.cyberforum.ru/cpp-beginners/thread52881.html
Люди помогите) как отсортировать одномерный статический рандомный массив по возрастанию без использования указателей? желательно пример с программным кодом... Заранее спасибо!
C++ найти площадь правильного шестиугольника Нужно найти площадь правильного шестиугольника можно не обращать на всякие мелкие ошибки типа нехватает скобки или ";" на быструю руку короче спасибо подробнее

Показать сообщение отдельно
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
28.09.2009, 13:53     Помогите пожалуйста со строками в C
Цитата Сообщение от Vivo Посмотреть сообщение
Дана строка, содержащая последовательность слов, разделенных пробелами. Удалить из строки все слова, в которых есть заданная буква.
Всё хорошо, но есть нюансы: во-первых в конце выводимой строки лишний пробел добавляется, а во-вторых на устойчивость к "дурным" данным особо не проверял. А так в принципе работает...
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
#define SHORTSTR 256
 
/* удаление из строки слов, содержащих указанную букву */
 
/* nextWord возвращает указатель на следующее слово в строке, или NULL */
char *nextWord(const char *str){
    char *p;
    for ( p = (char*)str; *p != '\0' && !isspace(*p); p++ )
        ;
    for ( ; *p != '\0' && isspace(*p); p++ )
        ;
    return ( *p == '\0' ) ? NULL : p;
}
 
/* getWord читает одно слово из строки str и помещает в буфер wrd длинною в len - 1 символов */
char *getWord(char *wrd, size_t len, const char *str){
    char *p;
    char *w;
    for ( p = (char*)str, w = wrd; *p != '\0' && !isspace(*p) && --len > 0; p++, w++ )
        *w = *p;
    *w = '\0';
    return wrd;
}
 
int main(){
    char str[SHORTSTR];
    char wrd[SHORTSTR];
    char *strp;
    char ex_char;
 
    while ( 1 ){
        printf("Enter string or 0 for exit\n");
        fgets(str, SHORTSTR, stdin);
        /* если первый символ строки 0 - выход */
        if ( *str == '0' )
            break;
        printf("Enter symbol for excluding words contains it: ");
        /* сделал так во-первых по привычке, а во второх \n из потока удаляется */
        fgets(wrd, SHORTSTR, stdin);
        ex_char = *wrd;
        /* пока есть слова в строке, получить слово, проверить на отсутствие буквы и напечатать */
        for ( strp = str; strp != NULL; strp = nextWord(strp) )
            if ( !strchr(getWord(wrd, SHORTSTR, strp), ex_char) )
                printf("%s ", wrd);
        printf("\n");
    }
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru