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

Замена символа в строке подстрокой

10.10.2017, 10:52. Показов 3943. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание такое: В строке заменить все символы 'p' подстрокой 'abc'. Результат работы программы прикрепляю.
Помогите, пожалуйста, решить задачу!)
Вот код, по-которому я пытался решить эту задачу:
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 <stdlib.h>
 
int main()
{
    char s[320], sym, res[320];
    system("chcp 1251");
    system("cls");
    printf("Введите строку: ");
    gets(s);
    printf("Введите символ: ");
    sym = getchar();
    int j = 0;
    for (int i = 0; s[i] != '\0'; i++)
    {
        if (s[i] = sym)
        {
            res[j] = s[i]; 
j++;
        }
    }
    res[j] = 'a';
    res[j + 1] = 'b';
    res[j + 2] = 'c';
    printf(res); 
    getchar(); getchar();
    return 0;
}
Миниатюры
Замена символа в строке подстрокой  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2017, 10:52
Ответы с готовыми решениями:

Замена первого слов в строке подстрокой
Нужно первое слово в строке заменить введённой подстрокой. ТО есть например : Строка: Солнечный...

Замена одного символа в строке на несколько
Каждая буква &quot;а&quot; меняется на слог &quot;си&quot;, буква &quot;и&quot; – на слог &quot;са&quot;. #include &lt;stdio.h&gt; ...

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

Замена символа в строке на число соответствующему номеру по порядку вхождения этого символа в строку
В заданной строке заменить каждый символ «*» числом, соответствующим номеру по порядку вхождения...

10
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
10.10.2017, 11:34 2
Mon1k66,
Цитата Сообщение от Mon1k66 Посмотреть сообщение
if (s[i] = sym)
Первый очевидный косяк, "= " - операция присваивания, сравнение - "=="
0
0 / 0 / 0
Регистрация: 11.07.2017
Сообщений: 9
10.10.2017, 12:11  [ТС] 3
Цитата Сообщение от _SayHello Посмотреть сообщение
Первый очевидный косяк, "= " - операция присваивания, сравнение - "==
Исправил, спасибо, но результат программы не изменился
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
10.10.2017, 12:20 4
Mon1k66,
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    char s[320] = { 0 };
    char sym;
    char res[320] = { 0 };
    system("chcp 1251");
    system("cls");
    printf("Введите строку: ");
    gets_s(s);
    printf("Введите символ: ");
    sym = getchar();
    for (int i = 0; i < strlen(s); i++)
    {
        if (s[i] == sym)
        {
            strcat(res, "abc");
        }
        else
        {
            res[strlen(res)] = s[i];
            res[strlen(res)+1] = '\0';
        }
    }
    puts(res);
    _getch(); 
    return 0;
}
1
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
10.10.2017, 12:21 5
Mon1k66,
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
int main(int argc, char** argv) {
    
    char s[320], sym, res[320];
    //system("chcp 1251");
    //system("cls");
    
    printf("Vvedite stroku: ");
    
    gets(s);
    
    printf("Vvedite simvol: ");
    
    sym = getchar();
    
    int j = 0;
    
    for (int i = 0; s[i] != '\0'; i++) {
        if  (s[i] != sym) {
            res[j++] = s[i];            
        }
        else {
            res[j++] = 'a';
            res[j++] = 'b';
            res[j++] = 'c';
        }
    }
    
    printf(res); 
    
    getchar(); 
    
    return 0;
}
1
0 / 0 / 0
Регистрация: 11.07.2017
Сообщений: 9
10.10.2017, 12:30  [ТС] 6
Цитата Сообщение от Kukstyler Посмотреть сообщение
Mon1k66,
C
Программа выдаёт это
Миниатюры
Замена символа в строке подстрокой  
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
10.10.2017, 12:34 7
Mon1k66, потому что строку нулем не закрыли
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
int main(int argc, char** argv) {
    
    char s[320], sym, res[320];
    //system("chcp 1251");
    //system("cls");
    
    printf("Vvedite stroku: ");
    
    gets(s);
    
    printf("Vvedite simvol: ");
    
    sym = getchar();
    
    int j = 0;
    
    for (int i = 0; s[i] != '\0'; i++) {
        if  (s[i] != sym) {
            res[j++] = s[i];            
        }
        else {
            res[j++] = 'a';
            res[j++] = 'b';
            res[j++] = 'c';
        }
    }
    res[j++] = '\0';
    printf(res); 
    
    getchar(); 
    
    return 0;
}
2
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
10.10.2017, 12:34 8
Mon1k66, у меня всё правильно:
Замена символа в строке подстрокой
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
10.10.2017, 12:36 9
Цитата Сообщение от _SayHello Посмотреть сообщение
потому что строку нулем не закрыли
Точно! Странно почему у меня работает.
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
10.10.2017, 12:37 10
Kukstyler, возможно компилятор инициализирует нулями весь массив вначале в итоге читает до первого нуля.
0
1246 / 858 / 265
Регистрация: 02.04.2009
Сообщений: 3,255
10.10.2017, 12:41 11
_SayHello, похоже просто совпадение:
Замена символа в строке подстрокой
0
10.10.2017, 12:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2017, 12:41
Помогаю со студенческими работами здесь

Операции в строке: поиск, замена, удаление символа в строке
Доброго здравия! В ассемблере совсем новичок, поэтому прошу помощи. Программа должна получать...

Замена символа в строке
В строке “ 4 * Х * 2 + 3 * Х + У * 7 – 9 = 0 ” все вхождения символа “Х” заменить на заданный...

Замена символа в строке
Есть простая задача: Дана строка. Заменить все символы 'a' на 'A' Решена задача была так: char...

Замена символа (ов) в строке
Пытаюсь заменить в строке str все символы на a перебором по символам .data str db 'Privet1...


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

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

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