Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 5
1

Считать подстроку и текст с клавиатуры, и вывести номера строк, в которых встретилась данная подстрока

07.05.2014, 21:26. Показов 2066. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане, очень нужна ваша помощь!
Есть задача: Написать программу на языке С, которая считывает подстроку и текст с клавиатуры, и выводит номера строк, в которых встретилась данная подстрока или сообщение о том, что она в данном тексте отсутствует.
Вот мои наработки:
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<ctype.h>
#include<string.h>
#include<stdlib.h>
int main(){
    char pstr[50];
    int i=0,j=0,n;
    puts("Введите подстроку: ");
    fgets(pstr,50,stdin);
    while(pstr[i]!='\n') i++;
    pstr[i]='\0';
    printf("Введите кол-во строк в тексте: ");
    scanf("%d",&n); printf("\n");
    n*=50;
    char* str=(char*)calloc(n,sizeof(char));
    for(i=0; i<n; i++){
        printf("Введите строку номер %d: ",i+1);
        fgets(*(*(str+i)+j),50,stdin);
    }
    for(i=0; i<n; i++){
        if(strstr(*(*(str+i)+j),pstr)!=NULL)
            printf("Подстрока присутствует в строке номер %d.\n", i+1);
            j++;
    }
    if(j!=0)
        printf("Подстрока отсутствует в данном тексте!\n");
    return 0;
}
===
Примечание: преподаватель сказал делать через динамическое выделение памяти
===
Возникшие проблемы:
При компиляции выдаёт вот это:

Считать подстроку и текст с клавиатуры, и вывести номера строк, в которых встретилась данная подстрока


+ При работе программы выдаёт "ошибку сегментирования" доходя до строчки с динамическим выделением памяти.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2014, 21:26
Ответы с готовыми решениями:

Вывести строки, в которых встретилась встретилась буква 'W'
#include&lt;iostream&gt; #include &lt;math.h&gt; #include &lt;ctime&gt; #include &lt;stdio.h&gt; #include &lt;cstdlib&gt;...

Найти в файле слово, введенное с клавиатуры, и вывести номера строк, в которых содержится это слово
Написать программу, которая ищет в файле слово, введенное с клавиатуры и выводит номера строк, в...

Дан текст. Преобразуйте текст, удалив слова, в которых есть заданная подстрока.
Дан текст. Преобразуйте текст, удалив слова, в которых есть заданная подстрока. Пример: &quot;Кто был...

Считать с клавиатуры текст и вывести его потом на экран
Написать программу, которая читает текстовый файл из стандартного потока ввода(stdin) в стандартный...

1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
07.05.2014, 22:10 2
Поправил твой код
Кликните здесь для просмотра всего текста
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<ctype.h>
#include<string.h>
#include<stdlib.h>
int main(){
    char pstr[50];
    int i=0,j=0,n;
    puts("Введите подстроку: ");
    scanf("%s", pstr);
    printf("Введите кол-во строк в тексте: ");
    scanf("%d",&n);
    char* str=(char*)calloc(n*50,sizeof(char));
    for(i=0; i<n; i++){
        printf("Введите строку номер %d: ",i+1);
        scanf("%s", str+50*i);
    }
    for(i=0; i<n; i++){
        if(strstr(str+50*i,pstr)!=NULL)
            printf("Подстрока присутствует в строке номер %d.\n", i+1);
            j++;
    }
    if(j!=0)
        printf("Подстрока отсутствует в данном тексте!\n");
    free(str);
    return 0;
}

Только ввод строк сделал через scanf, поэтому возможны проблемы с пробелами; лучше переделай по другому
0
07.05.2014, 22:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2014, 22:10
Помогаю со студенческими работами здесь

Считать текст из файла и вывести предложения, содержащие введенное с клавиатуры слово
Написать программу, которая считывает текст из файла и выводит на экран только предложения,...

Считать текст, вводимый с клавиатуры, и вывести его через одно слово
Добрый вечер, очень нуждаюсь в вашей помощи, просто я уже голову сломал. Условие. Написать...

Считать текст из файла и вывести на экран предложения, содержащие введённое с клавиатуры слово
Нужно написать программу, которая считывает текст из файла и выводит на экран предложения,...

Считать текст из файла и вывести на экран только предложения, содержащие введённое с клавиатуры слово
Написать программу, которая считывает текст из файла и выводит на экран только предложения,...

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово
У меня тут проблемка возникла! Осталась последняя неделя - ни как не могу написать вот эти проги....

Считать текст из файла и вывести на экран только предложения, начинающиеся с введенного с клавиатуры слова
Доброго времени суток! Помогите, пожалуйста, дописать код. Вот задание: Написать программу,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru