Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Передача параметра по указателю Объясните пожалуйста по какой причине при вызове func(&c) параметр "c" не меняет своего значения. #include <stdio.h> int func(int *b) { int a = 1; a += 4; b = &a; printf("b = %d\n", *b); return a; https://www.cyberforum.ru/ c-beginners/ thread319018.html C (СИ) Необычное поведение оператора инкремента
Добрый день! Это просто несчастье какое-то. Я пытаюсь посчитать коэффициенты корреляции, рассматривая строку из 16 массивов по 4 бит. Сравниваю побитно чтобы получить матрицу коэффициентов 4Х4. Программа выдает ерунду какую-то. Удивительно, в примере ниже я уже и цикл убрал, а коэффициенты корреляции больше 1! Ну как там больше одного инкремента произойти могло-то? Уже все перепроверил -...
C (СИ) Считывание с конца файла происходит дважды 1)почему-то считывается дважды с конца файла и поэтому удваивается последняя строка в новый файл. 2)не ищет вхождение строки в другой строке. все время говорит что "not found" //#include </home/cyberchuck/openssl-0.9.8h/include/openssl/md4.h> #include <stdio.h> #include <stdlib.h> #include <string.h> /*char *cryptonit(char *s) { int i; https://www.cyberforum.ru/ c-beginners/ thread318596.html C (СИ) В начало и конец каждой строки текстового файла добавить разделитель «|» Задание: Даны три файла целых чисел одинакового размера. Создать текстовый файл, содержащий эти числа, расположенные в три столбца шириной по 20 символов (в каждом столбце содержатся числа из соответствующего исходного файла). В начало и конец каждой строки текстового файла добавить разделитель «|» (код 124). Числа выравниваются по левому краю столбца. Вот то что я написала...у меня происходит... https://www.cyberforum.ru/ c-beginners/ thread318558.html
Организовать создание односвязного списка с последующим созданием новых элементов данной структуры C (СИ)
Доброго вам здравия. Мне необходимо написать базу данных на Си с помощью односвязного списка. И вот у меня вопрос. Есть структура: struct CAR { char owner; int model; char num; int power;
C (СИ) Функция с указателем не работает Всем привет. Вот код. #include <stdio.h> char daytab = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} }; https://www.cyberforum.ru/ c-beginners/ thread318442.html
C (СИ) Найти число, полученное в результате вычитания первого и второго комплексного числа https://www.cyberforum.ru/ c-beginners/ thread318435.html
Помоги пожалуйста рушить задачу. Используя указатели над структурами решить задачу: заданы комплексные числа, представленные в программе массивом array структур. Найти число, полученное в результате вычитания первого и второго комплексного числа. Дописать найденное число в имеющиеся данные. Найти сумму комплексных чисел. Вывести получившиеся данные на экран.
Найти наибольшую строку в массиве C (СИ)
Не могу понять где ошибка( Нужно найти наибольшую строку в массиве.Код компилируется, но не выводит ничего, подскажите в чем ошибка #include <stdio.h> #include <string.h> char* max(char *begin,char *end,int size,int(*cp)(char*,char*)) { char *mx=begin; while(begin!=end) { if(cp(begin,mx)) {mx=begin;}
C (СИ) Массив указателей на элементы структуры Здравствуйте. Сабж таков: есть структура struct Struct1, в ней есть элемент, допустим указатель на строковой литерал, обзовём его char * word. Хочу создать массив указателей, ссылающихся на struct -> word, но не знаю как такой массив объявить. Прошу помочь советом. https://www.cyberforum.ru/ c-beginners/ thread318098.html C (СИ) Необходимо отсортировать однонаправленный список. Необходимо создать однонаправленный список и реализовать в нём все действия...Получилось сделать всё кроме сортировки...необходимо переставлять не значения а указатели...помогите кто может метод сортировки любой... Вот что у меня получилось #include <stdio.h> #include <stdlib.h> int Add(int); void Print(void); void Destroy(void); https://www.cyberforum.ru/ c-beginners/ thread317838.html
C (СИ) Дано целое число а, поменять максимальные и минимальные разряды местами
Вот смотрите я написал код, где в нём ошибка? Я что то не пойму #include<stdio.h> #include<conio.h> int main() { long int i, a, b, oc, l, m, max, min, s, p; printf("\n vvedy a: "); scanf("%ld", &a); b=a; max=0;
C (СИ) Взять последний символ из строки в файле Задание: заменить на пробел все символы, совпадающие с последним символом в строке Параметры командной строки: 1. Имя входного файла 2. Количество замен Вот что уже написал: #include <stdio.h> #include <stdlib.h> https://www.cyberforum.ru/ c-beginners/ thread317466.html
Эксперт С++
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
13.06.2011, 22:27 0

Заменить в строке s1 первое вхождение строки s2 на s3 - C (СИ) - Ответ 1756444

13.06.2011, 22:27. Показов 2088. Ответов 19
Метки (Все метки)

Ответ

Вот, исправил немного. Извини, пришлось применить автоформатирование, чтобы мозг не напрягать
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
void EnterString (char s[], char *name)
{
    printf ("\nEnter string %s = ", name);//ввод строки
    char c; int i=0;
    fflush (stdin);
    while ((c= getchar())!='\n')
    {
        s[i] = c;
        i++;
    }
    s[i] = '\0';
    printf("\n%s", s);       //вывод строки
}
int LenSt (char d[])  //находим длины строк
{
    int i = 0;
    while (d[i] != '\0')
        i++;
    return i;
}
int main (void)
{
    char s1[200]; char s2[200]; char s3[200];
    int i, j, k;
    int s1_len, s2_len, s3_len;
    int count_matches, match;
    EnterString (s1, "s1");
    s1_len=LenSt(s1);
    printf ("\n\nLenght of string %s = %i", "s1", s1_len);
    EnterString (s2, "s2");
    s2_len=LenSt(s2);
    printf ("\n\nLenght of string %s = %i", "s2", s2_len);
    EnterString (s3, "s3");
    s3_len=LenSt(s3);
    printf ("\n\nLenght of string %s = %i", "s3", s3_len);
    if ((s1_len - s2_len + s3_len) <= 200)
    {
        //Ищем подстроку
        for (i = 0; i < ((s1_len - s2_len) + 1); i++)
        {
            //"Обнуляем" переменные.
            count_matches = 0;
            match = 0;
 
            //Смотрим, совпадают ли символы в первой и второй строках
            for (j = 0; j < s2_len; j++)
            {
                if (s1[i + j] == s2[j])
                {
                    //Ура! Еще один символ совпал)))
                    count_matches++;
                } else
                {
                    //Упс... символы не совпали(((
                    break;
                }
            }
            //Если кол-во совпадений равно длине подстроки, то мы нашли подстроку
            if (count_matches == s2_len)
            {
                match = 1;
                break;
            }
        }
        //Если нашли подстроку то заменяем её на третью строку
        if (match = 1)
        {
            //Сохраняем подстроку после s2
            for (j = i + s2_len; j <= s1_len; j++)
            {
                s2[j - i - s2_len] = s1[j];
            }
 
            //Заменяем подстроку
            j = 0;
            k = i;
            for (i; i < k + s3_len; i++)
            {
                s1[i] = s3[j++];
            }
 
            //Добавляем сохранённый хвост
            j = 0;
            while ( (s1[i++] = s2[j++]) != '\0')
                ;
 
            //И выводим полученную
            printf("%s", s1);
        }
    } 
    else
    {
        //Если длина итоговой строки выходит больше максимальной, то не мучаемся, а пишем об этом.
        printf("Длина итоговой строки выходит больше максимальной!");
    }
 
 
    return 0;
}
Главные изменения — это копирование завершающего нуля в строке 71 (у меня 70), ну и перед выводом небольшой цикл добавился, для восстановления сохранённой части (строки 83—86 у меня).
Ну и так, мелочи вроде многосимвольных констант 's1'.

Добавлено через 2 минуты
Ну а твои "лишние" символы, это как раз забытый 0 при сохранении.

Вернуться к обсуждению:
Заменить в строке s1 первое вхождение строки s2 на s3 C (СИ)
2
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2011, 22:27
Готовые ответы и решения:

Заменить в строке S первое вхождение строки
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2. Тут...

Заменить в строке S первое вхождение строки S1 на строку S2.
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2.

Заменить в строке S первое вхождение строки S1 на строку S2
Помогите решить задачу: Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на...

Заменить в строке S первое вхождение строки S1 на строку S2
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2. Задача...

19
13.06.2011, 22:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2011, 22:27
Помогаю со студенческими работами здесь

Заменить в строке S первое вхождение строки S1 на строку S2
Знатоки! Помогите мне пожалуйста: Даны строки S, S1 и S2. Заменить в строке S первое вхождение...

Заменить в строке S первое вхождение строки S1 на строку S2
Дано строки S, S1, S2. Заменить в строке S первое вхождение строки S1 на строку S2.

Заменить в строке S первое вхождение строки S1 на строку S2
uses crt; var p: byte; s,s1,s2:string; begin write('S='); readln(s); //запрашиваем строки и...

Заменить в строке первое вхождение строки S1 на строку S2
Даны строки S, S1 и S2. Заменить в строке S первое вхождение строки S1 на строку S2. помогите

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