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

Меняется только первая буква элемента структуры

21.04.2015, 23:52. Просмотров 345. Ответов 3
Метки нет (Все метки)

В данной функции реализовано редактирование элементов структуры, там где int все заменяется правильно, а там где тип данных char только первый символ. Подскажите в чем причина может быть...
Вот этот участок кода, проблемные места пометил "<----":

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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
void Change(struct Note *box, int count)
{
int i, p=0,cw,N=0;
char chD[15]= {0}, ch[20]= {0};
    printf("-----Меню Редактирования------\n");
    printf("Введите номер вагона который нужно отредактировать: ");
    scanf("%d", &p);
   for(i=0; i<count; i++)
    {
    if(p==box[i].number_carriage)
      {      
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
      }
    }
     printf("Что редактировать?\n\n");
     printf("Шифр вагона - 1\n");
     printf("Станцию отпарвления - 2\n");
     printf("Станцию назначения - 3\n");
     printf("Шифр содержимого - 4\n");
     printf("Отпарвителя - 5\n");
     printf("Получателя - 7\n\n");
     cw=_getch();
     switch (cw)
    {
      case 49:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новый шифр вагона: ");
         scanf("%d", &N);
         box[i].code_carriage=N;   <-----здесь все нормально проходит и записывается
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
        }
            break;
        }
      case 50:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новая станция отпарвления: ");
         scanf("%s", chD);
         printf("Новая станция прибытия: %s",chD);
         *box[i].d_station=*chD;      <-----в этом же варианте только первый символ перезаписывается
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
        }
            break;
        }
   
      case 51:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новая станция прибытия: ");
         scanf("%s", ch);        
          *box[i].station_of_d=*ch;
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
            }
            break;
        }
      case 52:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новый шифр вагона: ");
         scanf("%d", &N);
         box[i].code_bag=N;
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
        }
            break;
        }
      case 53:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новый отправитель: ");
         scanf("%s", ch);
          *box[i].sender=*ch;
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
            }
            break;
        }
      case 54:
        {
        for(i=0; i<count; i++)
            {
             if(p==box[i].number_carriage)
               {
         printf("Новый получатель: ");
         scanf("%s", ch);
          *box[i].recipient=*ch;
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
        printf("Номер вагона  | Шифр вогона   | Станция отпарвления | Станция назанчения | Шифр содержимого |       Отпарвитель      |   Получатель\n");  
        printf("%d             | %d          | %s                  | %s                  | %d              | %s                     | %s    \n", 
            box[i].number_carriage, box[i].code_carriage, box[i].d_station, box[i].station_of_d, box[i].code_bag, box[i].sender, box[i].recipient);
        printf  ("\n");
        printf("\n---------------------------------------------------------------------------------------------------------------------------------\n");
               }
            }
            break;
        }
    }
}
Зарание благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2015, 23:52
Ответы с готовыми решениями:

Убрать лишние пробелы и вывести на экран те строки, где первая буква и последняя буква слова одинаковы
Есть вот такой код к заданию: Дана строка с произвольным кол-вом слов и...

Функция: определить, встречается ли в слове X первая буква слова Y
2) Есть еще задачка: Напишите функцию для определения, встречается ли в слове...

Строка: Определить, сколько раз в строке встречается первая буква?
Здравствуйте. Помогите решить такую задачку. Ввести символьную строку....

Найти количество слов, у которых первая и последняя буква совпадают между собой
Дано n,S1...Sn найти кол - во слов у которых первая и последняя буква совпадают...

Напечатать все слова, в которых первая буква слова входит в него более одного раза.
Решите пожалуйсто задачу на Си Напечатать все слова, в которых первая буква...

3
XZentus
201 / 199 / 65
Регистрация: 06.10.2013
Сообщений: 552
22.04.2015, 07:53 2
1) Где описание структуры?
2) Вы и присваиваете только 1й символ. Копирование строк осуществляется функцией strcmp.
0
Cremate45
0 / 0 / 0
Регистрация: 29.03.2015
Сообщений: 17
22.04.2015, 21:31  [ТС] 3
Благодарю, вопрос решен
0
XZentus
22.04.2015, 21:59     Меняется только первая буква элемента структуры
  #4

Не по теме:

Я ж не ту функцию написал случайно (:

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2015, 21:59
Привет! Вот еще темы с ответами:

Изменить программу, чтобы выводился весь файл, а не только первая строка
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct a { int id; char...

Функция удаления элемента структуры
Здравствуйте, не могли бы подсказать, где я ошибся?( функция никак не хочет...

Доступ к адресу элемента структуры
Здравствуйте, встал вопрос по поводу структур. Как получить адресс элемента...


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

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

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