Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 15
1

Вывести номера строк исходного файла и номер позиции в строке

03.05.2010, 22:42. Просмотров 4392. Ответов 9
Метки нет (Все метки)


помогите плз написать на "c" программу на строки, со строками раньше не сталкивался...Заранее спс

вывести номера строк исходного файла и номер позиции в строке,где встречается это слово.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2010, 22:42
Ответы с готовыми решениями:

Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается
как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой...

Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается
и так, вот условие: дана строка символов, состоящая из произвольного текста, слова разделены...

Определить содержится ли в строке А строка Б, если да, то вывести номер позиции
Даны строки a и b. Определить содержится ли в строке А строка Б, если да, то вывести номер позиции....

Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер позиции, н
Даны две строки: S1 и S2. Проверить, содержится ли строка S2 в строке S1. Если да, то вывести номер...

9
Почетный модератор
7356 / 2620 / 275
Регистрация: 29.07.2006
Сообщений: 13,673
03.05.2010, 22:56 2
C
1
2
3
4
5
6
#include<stdio.h>
 
int main(){
    system("grep slovo -n file");
    return 0;
}
пример работы этого мега-алгоритма:
[Vourhey@ three]$ ./a.out
1:dsf;lsdkf;ls slovo df;lsk
6:sdf sfsd slovo
А вот позицию найди сам
2
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 15
03.05.2010, 23:25  [ТС] 3
спс, тольк поясни поз что означает
system("grep slovo -n file")
0
Почетный модератор
7356 / 2620 / 275
Регистрация: 29.07.2006
Сообщений: 13,673
03.05.2010, 23:32 4
phenomenoN, запуск команды grep с параметрами.
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 15
03.05.2010, 23:47  [ТС] 5
а позицию тоже с помощью grep можно найти?
0
Эксперт JavaЭксперт С++
8365 / 3586 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
03.05.2010, 23:54 6
Цитата Сообщение от phenomenoN Посмотреть сообщение
а позицию тоже с помощью grep можно найти?
Ответ найдет только внимательный форумчанин :
Цитата Сообщение от Vourhey Посмотреть сообщение
А вот позицию найди сам

ЗЫ. grep - это shell, под виндой эта команда не пройдет
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10907 / 6830 / 1625
Регистрация: 25.07.2009
Сообщений: 12,539
04.05.2010, 00:01 7
phenomenoN, позицию можно с помощью strstr() получить, если от возвращённого ей указателя на подстроку отнять указатель на начало строки.

Добавлено через 6 минут
Цитата Сообщение от M128K145 Посмотреть сообщение
grep - это shell, под виндой эта команда не пройдет
Не, ну можно же CygWin поставить, и будет в его консоли и grep, и sed, и awk какой-нибудь...

phenomenoN, заводите счётчик строк и буфер под чтение строки из файла. Читаете по строке целиком, увеличиваете счётчик, ищите функцией strstr() указатель на подстроку, если нашёлся - выводите номер строки (счётчик), разницу указателей (позиция в строке) и собственно строку...
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 15
04.05.2010, 20:13  [ТС] 8
всем спасибо за содействие

Добавлено через 19 часов 36 минут
надо написать программу, которая убирает из файла комментарий в стиле /* ... */ (считываю по строкам)
нашел 2 включения через strstr, как теперь убрать подстроку между этими включеними, т.е чтобы в output комментарии не печатались



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
#include <stdio.h>
#include <string.h>
 
 
int comment(FILE*, FILE*,  const char* , const char*);
char str[256];
char *c,*l;
while(fgets(str,256,in)!=NULL)
{
    c=strstr(str,start);
    l=strstr(str,finish);
}
 
 
int main (int ac, char **av)
{
    FILE *in;
    FILE *out;
    char c,prev_c;
    int flag, flag1, incomment_long,incomment_str;
    const char* start = "/*"; //find finish and sart
    const char* finish = "*/";
    if (ac != 3) printf("Wrong number of arguments!\n");
    in = fopen (av[1],"rt");
    out = fopen (av[2],"wt");
    comment(in,out, start, finish);
    
 
    fclose (in);
    fclose (out);
}
~
~

Добавлено через 30 минут
можно ли найти длину строки через n=strlen(str);
и печатать в файл через for (i=0,i<n,i++);
вот только проблема как написать printf, если мы считывали по строкам, а написать надо по символам...
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 15
07.05.2010, 12:45  [ТС] 9
Цитата Сообщение от easybudda Посмотреть сообщение
phenomenoN, заводите счётчик строк и буфер под чтение строки из файла. Читаете по строке целиком, увеличиваете счётчик, ищите функцией strstr() указатель на подстроку, если нашёлся - выводите номер строки (счётчик), разницу указателей (позиция в строке) и собственно строку...

как будет выглядеть разница указателей, и как ее распечатать?
printf ("%s",index)? %s? или %c?

Добавлено через 8 часов 49 минут
все, вроде разобрался
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10907 / 6830 / 1625
Регистрация: 25.07.2009
Сообщений: 12,539
07.05.2010, 13:14 10
Цитата Сообщение от phenomenoN Посмотреть сообщение
как будет выглядеть разница указателей, и как ее распечатать?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
size_t cnt; /* счётчик строк */
char buf[SOME_ENOUGH_SIZE]; /* буфер под строку */
char *ss = "something to find"; /* подстрока, которую нужно искать */
char *p;
FILE *f;
...
if ( ! ( f = fopen("file.txt", "r") ) )
  return 1;
cnt = 0;
while ( fgets(buf, sizeof(buf), f) ){
  ++cnt;
  if ( p = strstr(buf, ss) )
    printf("%d:%d %s", cnt, p - buf, buf);
}
...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2010, 13:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Найти порядковый номер слова максимальной длины в строке и номер позиции, с которой оно начинается
помогите пожалуйста с программой( среда Visual C ) Дана строка символов, состоящая из...

В текстовом файле.Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus”
Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus”. Вывести...

Вывести на экран порядковый номер слова максимальной длины и номер позиции строки с которой оно начинается
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены...

Вывести на экран порядковый номер слова максимальной длины и номер позиции строки с которой она начинается.
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены...

Номер позиции в строке
Найти номер позиции первой цифры в строке. Я пробовал писать, но не выходит, надеюсь тут...

Определить в строке номера позиции слова с заданным номером
8.7.1. Помогите, пожалуйста, решить задачу в С++. Написать программу определения в строке...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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