2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
1

Only строки*

02.01.2011, 14:41. Показов 999. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с написанием программ через библиотеку <stdio.h>

1.Ввести строку и слово. Определить и вывести, сколько раз встречаются
в строке буквы, перечисленные в слове.

2.Ввести строку и два слова. Вывести строку, в которой все
вхождения первого слова заменены на второе слово.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2011, 14:41
Ответы с готовыми решениями:

Даны три строки. Определить можно ли из символов третьей строки получить первую и вторую строки
Помогите пожалуйста! 1)Даны три строки. Определить можно ли из символов третьей строки получить...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и...

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

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

17
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 14:48 2
Цитата Сообщение от Оленька* Посмотреть сообщение
2.Ввести строку и два слова. Вывести строку, в которой все
вхождения первого слова заменены на второе слово.
https://www.cyberforum.ru/cpp-... ost1129916
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
02.01.2011, 15:05  [ТС] 3
Цитата Сообщение от Оленька* Посмотреть сообщение
написанием программ через библиотеку <stdio.h>
.....
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
02.01.2011, 16:06 4
Оленька*,
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 <string.h>
 
#define BUFSIZE 256
#define DELIM " .,"
 
int main(void)
{
    char str[BUFSIZE], word[BUFSIZE],
    _word[BUFSIZE], *temp, *p;
    printf("\n\nEnter string: ");
    scanf("%[^\n]%*c", str);
 
    printf("\n\nEnter first word: ");
    scanf("%s", word);
 
    printf("\n\nEnter second word: ");
    scanf("%s", _word);
 
    for(p = strtok(str, DELIM); p; p = strtok(NULL, DELIM))
    {
        if(!strcmp(p, word))
            printf("%s ", _word);
        else
            printf("%s ", p);
    }
    return 0;
}
1
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
03.01.2011, 11:49  [ТС] 5
А 1-ую программу можете помочь?..
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12454 / 7479 / 1752
Регистрация: 25.07.2009
Сообщений: 13,755
03.01.2011, 12:04 6
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 <string.h>
 
int main(void){
    char buf[BUFSIZ], wrd[BUFSIZ], * p;
    int counters[256], i;
    
    printf("String: ");
    scanf("%[^\n]%*c", buf);
    printf("Word: ");
    scanf("%s", wrd);
    
    memset(counters, 0, sizeof(counters));
    for ( p = strpbrk(buf, wrd); p; p = strpbrk(p + 1, wrd) )
        counters[*p]++;
        
    printf("char\tcount\n");
    for ( i = 0; i < 256; ++i )
        if ( counters[i] )
            printf("'%c'\t%d\n", i, counters[i]);
    
    return 0;
}
1
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
03.01.2011, 23:21  [ТС] 7
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
#define N 100
#include <stdio.h>
 
int Wrddel(char mas[])
{
int i,j,k;
for (i=0;mas[i]!='\0';i++)
{
for (j=i+1;mas[j]!='\0';j++)
{
if (mas[i]==mas[j])
{
for (k=j;mas[k]!='\0';k++)
{
mas[k]=mas[k+1];
}
i--;
j--;
}
}
}
return i;
}
 
int numsimb(char s, char mas[])
{
int count=0;
for(int i=0;mas[i]!='\0';i++)
{
if (mas[i]==s)
count++;
}
return count;
}
 
void main()
{
char str[N],wrd[N];
int i;
printf("String: ");
scanf("%[^\n]%*c", str);
printf("Word: ");
scanf("%s", wrd);
 
for (i=0;wrd[i]!='\0';i++)
{
printf("%c - %i \n",wrd[i],numsimb(wrd[i],str));
}
}
1
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
09.01.2011, 14:24  [ТС] 8
Можете помочь написать вторую программу, по тому же типу как я написала первую?...
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 14:36 9
Цитата Сообщение от Оленька* Посмотреть сообщение
Можете помочь написать вторую программу, по тому же типу как я написала первую?...
См. пост #4
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
09.01.2011, 14:42  [ТС] 10
strtok - разделяет строку на слова ,а !strcmp что делает, я прочитала описание но не поняла?
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 14:44 11
Цитата Сообщение от Оленька* Посмотреть сообщение
strtok - разделяет строку на слова ,а !strcmp что делает, я прочитала описание но не поняла?
Сравневает две строки.
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
09.01.2011, 19:13  [ТС] 12
У меня есть просто другая идея, но я не могу ее реализавать, то есть сделать так , по массиву на каждое слово, если один массив равен введенному, то заменять .Можете помочь написать..
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 19:16 13
Не, такой бред(вы уж извините) не пишу.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.01.2011, 19:25 14
asics, ну а почему бы не разбить строку на слова и не распихать по списку? Так действительно удобней было бы))) Правда не уверен, что списки не вызовут подозрений у препода))
И вообще, физической замены у вас не происходит. Только косметическая.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.01.2011, 19:38 15
silent_1991, Ну так по заданию у меня все правильно:
Вывести строку, в которой все
вхождения первого слова заменены на второе слово.
у меня и выводиться строка по условию.
0
122 / 122 / 16
Регистрация: 18.09.2010
Сообщений: 212
09.01.2011, 20:10 16
Цитата Сообщение от Оленька* Посмотреть сообщение
меня есть просто другая идея, но я не могу ее реализавать, то есть сделать так , по массиву на каждое слово, если один массив равен введенному, то заменять .Можете помочь написать..
Ну если не использовать функции string.h, то можно сделать такую ерунду:
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
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#define MAX 10
int WordComp(char x[],char y[])
{
    int i;
    for(i=0;isgraph(x[i])&&isgraph(y[i]);++i)
    {
      if(x[i]!=y[i])return 0;
    }
    return 1;
}
void main()
{
  int i,a,b;
  char line[MAX*MAX]={};
  char Words[MAX][MAX]={};
  char word1[MAX]={};
  char word2[MAX]={};
  printf("Input your line:\n");
  gets(line);
  printf("Input word 1:\n");
  gets(word1);
  printf("Input word 2:\n");
  gets(word2);
  for(i=0,a=0,b=0;i<MAX*MAX;++i)
  {
      if(line[i]==' ')
      {
          ++a;
          ++i;
          b=0;
      }
      Words[a][b++]=line[i];
  }
printf("Here is your changed string:\n");
 for(i=0;i<a+1;++i)
 {
     if(WordComp(word1,Words[i]))
     printf("%s ",word2);
     else
     printf("%s ",Words[i]);
 }
 getch();
 }
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
10.01.2011, 07:59  [ТС] 17
Без исползования string.h

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
#define N 50
#include <stdio.h>
 
bool wequel(char mas1[N], char mas2[N])
{
int i=0;
bool f=true;
while(1)
{
if (mas1[i]!=mas2[i])
{
f=false;
break;
}
if (mas1[i]=='\0')
break;
i++;
}
return f;
}
void putss(char mas[])
{
for(int i=0;mas[i]!='\0';i++)
{
putchar(mas[i]);
}
putchar(' ');
}
 
void main()
{
char mas[N][N], word1[N], word2[N];
int i=-1,j=-1;
do
{
j=-1;
i++;
do
{
j++;
mas[i][j]=getchar();
}while(mas[i][j]!=' ' && mas[i][j]!='\n');
if (mas[i][j]!='\n') mas[i][j]='\0';
}while(mas[i][j]!='\n');
mas[i][j]='\0';
 
gets(word1);
gets(word2);
 
for (j=0;j<=i;j++)
{
if (wequel(mas[j],word1))
putss(word2);
else
putss(mas[j]);
}
putchar('\n');
}
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
10.01.2011, 17:27 18
Оленька*, В Си нет типа данных bool
0
10.01.2011, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2011, 17:27
Помогаю со студенческими работами здесь

Определить длину строки. Если длина строки >6, удалить часть строки в { } скобках.
Ввести с клавиатуры строку символов. Признак окончания ввода строки – нажатие клавиши &quot;Ввод&quot;....

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки...

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

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки.
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки...


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

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

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