Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
crazy_boooom
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 8
1

Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2

13.12.2016, 00:32. Просмотров 340. Ответов 5
Метки нет (Все метки)

функция принимает блоки данный(символ1, символ 2 , строка), в каждом строке заменять символ 1 на символ 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
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <locale.h>
#include<conio.h>
#include <stdlib.h>
#include <malloc.h>
#include <stdarg.h>
#include <stdio.h>
# define N 10
void fun ( int s1,int s2, char *str,   ...)
{  char sim1, sim2; char *p, *p2;
    int i;
    *p2=&s1;
 
    while(*p2!='x')
    { i=0;
    
    sim1=*p2;
    p2++;
    sim2=*p2;
    p2++;
    p=*p2;
    while(*(p+i))
    {
        if(*(p+i)==sim1)
        {
        
        *(p+i)=sim2;
        i++;
        }   
       else
        i++;
    }
    i=0;
    while(*(p+i))
    {
        printf("%c", *(p+i));
        i++;
    }
        printf("    ");
    p2++;
    
   }
 
    
 
}
int main ()
{ setlocale(LC_ALL, "russian");
     
    char *p1, *p2, *p3;
    char s1='a', s2='o', a='x';
p1 = (char*) malloc(N*sizeof(char));
  if(!p1)
    {
        printf("error");
        getch();
        return 0;
    }
p2 = (char*) malloc(N*sizeof(char));
  if(!p2)
    {
        printf("error");
        getch();
        return 0;
    }
    p3 = (char*) malloc(N*sizeof(char));
  if(!p3)
    {
        printf("error");
        getch();
        return 0;
    }
 
gets(p1);
gets (p2);
gets(p3);
printf ( "v stroke 1 zamenim %c na %c, v stroke 2 %c na %c, v stroke 3 %c na %c \n", s1, s2, s1, s2, s1, s2);
    fun (  s1, s2, p1, s1, s2, p2, s1, s2,p3, a);
       return 0;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2016, 00:32
Ответы с готовыми решениями:

Заменить в каждой строке один заданный символ на другой заданный символ
Даны две строки длиной длиной до 80 символов. Заменить в каждой строке один заданный символ на...

Дана строка. Преобразовать ее, удалив каждый символ (*) и повторив каждый символ, отличный от (*)
напишите пожалуйста решение задачи и к нему СКРИН ну или хотя бы вот эту задачу напишите В...

Строки: перед каждой цифрой в строке вставить символ «N»
Перед каждой цифрой в строке вставить символ «N». Можете решить? Меня всегда бесят эти строки

Во введенной пользователем строке добавить символ «#» после каждой цифры (0-9)
Не получается, помогите( #include &lt;stdlib.h&gt; int main() {) char str; printf (&quot;Enter...

Дана строка. Найти символ в строке, встречающийся наибольшее число раз
Дана строка. Найти символ в строке, встречающийся наибольшее число раз. Заранее спасибо!

5
crazy_boooom
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 8
16.12.2016, 13:41  [ТС] 2
up+
0
HighPredator
5710 / 2033 / 726
Регистрация: 10.12.2010
Сообщений: 5,825
Записей в блоге: 3
16.12.2016, 14:53 3
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
#include  <stdio.h>
#include  <stdarg.h>
#include  <string.h>
 
void ReplaceChars(const char charWhich, const char charTo, char* const str)
{
    for (size_t i = 0; i < strlen(str); i++)
        if (str[i] == charWhich) str[i] = charTo;
}
 
void ReplaceCharsInStrings(const char charWhich, const char charTo, char* str, ...)
{
    va_list argsList;
    va_start(argsList, str);    
    
    while (str != NULL)
    {
        ReplaceChars(charWhich, charTo, str);
        str = va_arg(argsList, char*);
    }
    va_end(argsList);
}
 
int main(void)
{
    char s1[] = "This is a test";
    char s2[] = "No way";
    char s3[] = "This can't be";
    char s4[] = "Still";
    char s5[] = "It can";
    
    char c1 = 't';
    char c2 = '*';
    
    ReplaceCharsInStrings(c1, c2, s1, s2, s3, s4, s5, NULL);
    
    printf("%s\n%s\n%s\n%s\n%s\n", s1, s2, s3, s4, s5);
    
    return 0;
}
0
crazy_boooom
0 / 0 / 0
Регистрация: 08.11.2016
Сообщений: 8
16.12.2016, 17:47  [ТС] 4
спасибо, но загвоздка в том, что 1)просили не испJльзовать макрос va_list 2)в задании надо передавать в функции для каждой строки разные символы для замены т.е fun(символ 1, символ 2, строка1, символ3, символ 4, строка 2 , NULL)
0
shvyrevvg
16.12.2016, 18:09
  #5

Не по теме:

Цитата Сообщение от crazy_boooom Посмотреть сообщение
спасибо, но загвоздка в том, что 1)просили не испJльзовать макрос va_list 2)в задании надо передавать в функции для каждой строки разные символы для замены т.е fun(символ 1, символ 2, строка1, символ3, символ 4, строка 2 , NULL)
Об этом стало известно только сегодня... да?

0
HighPredator
5710 / 2033 / 726
Регистрация: 10.12.2010
Сообщений: 5,825
Записей в блоге: 3
17.12.2016, 11:19 6
Цитата Сообщение от crazy_boooom Посмотреть сообщение
просили не испJльзовать макрос va_list
В таком случае решение будет непереносимым.
Цитата Сообщение от crazy_boooom Посмотреть сообщение
в задании надо передавать в функции для каждой строки разные символы для замены т.е fun(символ 1, символ 2, строка1, символ3, символ 4, строка 2 , NULL)
А это вообще работать не будет из-за нарушения регулярности -- в последнем случае, когда надо будет снимать символ со стека, будет по факту указатель со значением NULL. И вообще такой конкретно паровоз можно с учетом первого сделать только на базе массива указателей, а не переменного числа аргументов.

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

0
17.12.2016, 11:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2016, 11:19

Замена в каждой строке одного заданного символа на другой заданный символ
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ)) Даны 2 строки до 80 символов. Необходимо Заменить в каждой сроке один...

Дан символ; вывести символ, который в кодовой таблице следует за этим символом
Задание 1) Дан символ. Вывести символ, который в кодовой таблице следует за этим символом

Дан символ. Вывести символ, который в кодовой таблице следует за этим символом
Дан символ. Вывести символ, который в кодовой таблице следует за этим символом.


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

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

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