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

Работа со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Консоль и GUI http://www.cyberforum.ru/cpp-beginners/thread65674.html
Доброго времени суток! Я-новичок, в рамках учебной программы изучал когда-то С++, было это давно, и программировали тогда мы под консоль. Собственно, в данное время иногда чувствуется острая необходимость в умении программировать. Решил начать с самого начала, с книги Стефана Р. Дэвиса "С++ для чайников". Но взглянув на количество различных компиляторов С++ (поправьте меня, если я употребил не...
C++ не могу решить до конца Есть задачка, и не могу понять в чём я ошибаюсь: Нужно из одного текста, который мы вводим с клавиатуры, найти самые длиное слово и сравнить если его последние буквы равны с первыми буквами из последуюшего слова к примеру"букВА ВАл" первое слово он находит а вот остальные слова если есть такого же размера он не проверяет! вот собственно и код:#include <stdio.h> #include <stdlib.h> #include... http://www.cyberforum.ru/cpp-beginners/thread65631.html
C++ Win API форма курсора
Привет. Делаю оконное приложение на win api. Надо программно сделать форму курсора - стрелка (стандартная). Как это сделать, подскажите?
Метод Фибоначчи C++
Ребята, помогите пожалуйста написать программу на С++ по методу Фибоначчи, при условии f(x)=2x*x*x-6*x+3, a=0, b=2,5 .
C++ Перевод текста в произвольную систему счисления http://www.cyberforum.ru/cpp-beginners/thread65570.html
Задача такая (перевод с эстонского): С клавиатуры вводится: - Р - натуральное число, 0 < P < 21. - S - массив строк P-ичных чисел (т.е. P - основание системы счисления). - N - число элементов массива S. Затем выводится в начальном виде (?) и в десятичной системе. Часы, проведенные за поиском в интернете в общем и на вашем форуме в частности, результатов не принесли =(
C++ Максимум в массиве Найти максимум в массиве иего положение Добавлено через 1 минуту #include <iostream> using namespace std; int main() { int n; double array; int i, imax(0), imin(0); подробнее

Показать сообщение отдельно
Gravity
 Аватар для Gravity
556 / 550 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
20.11.2009, 21:13     Работа со строками
Цитата Сообщение от Opiym Посмотреть сообщение
Не знаю что делать ! Прога норм компилируется и запускается, но после ввода s,s1,s2 выдаёт ошибку, что связанное с переменной q
Пропатченная версия второй проги:
prog02.c
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
54
55
56
57
58
59
60
61
62
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void *xmalloc(size_t size)
{
    void *ptr;
 
    if( (ptr = malloc(size)) == NULL) {
        perror("malloc");
        exit(-1);
    }
    return ptr;
}
 
void *xrealloc(void *oldptr, size_t size)
{
    void *ptr;
 
    if( (ptr = realloc(oldptr, size)) == NULL) {
        perror("realloc");
        exit(-1);
    }
    return ptr;
}
 
int main(void)
{
    int i, maxline = 512;
    char *s, *s1, *s2, *p, *q;
 
    s  = (char *) xmalloc(maxline);
    s1 = (char *) xmalloc(maxline);
    s2 = (char *) xmalloc(maxline);
 
    printf("enter s: ");
    fgets(s, maxline, stdin);
    printf("enter s1: ");
    fgets(s1, maxline, stdin);
    printf("enter s2: ");
    fgets(s2, maxline, stdin);
    
    for(p = s, q = NULL; (p = strstr(p, s1)) != NULL; q = p, p++)
        ;
    if(q == NULL) {
        printf("В s не найдено вхождений s1.\n");
        goto EXIT;
    }
 
    i = q - s;
    if(maxline < i + strlen(s2) + 1)
        s = (char *) xrealloc(s, maxline * 2);
    
    strcpy(s + i, s2);
    printf("result: %s", s);
 
 EXIT:
    free(s);
    free(s1);
    free(s2);
    return 0;
}

Вылетало из-за того, что не было проверки, когда в строке нет вхождений.
Цитата Сообщение от Opiym Посмотреть сообщение
Не подскажешь где можно скачать разные задачи по C с решениями, чтобы вникнуть лучше ??!
Читай Б. Кернигана, Д. Ритчи "Язык программирования Си". Там есть задачи в конце каждой темы. Или можешь на этом форуме поискать для себя задачи.
 
Текущее время: 15:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru