У меня проблема с charом
есть вот такой код:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char name[50];
char names[5][50] = { "ПРЫФЫПФ" };
name = names[0];
system("pause");
return 0;
}
Мне нужно, чтобы я мог в любой момент поменять значение в name на то, которое я хочу, но компилятор выдаёт ошибку: "Выражение должно быть допустимым для изменения левосторонним значением". Как это можно исправить? Далее я хочу объявить структуру Student и добавить в неё поля Name, second_name и т.д. То есть строки ОПРЕДЕЛЕННОГО размера, const char * name, например, не покатит. Помогите пожалуйста. Заранее спасибо.
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
Можно массив фиксированного размера поместить в структуру. Тогда операция присваивания будет работать. А можно и функцией копирования strncpy воспользоваться.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef
struct s50 {
char s[50];
} s50 ;
int main()
{
s50 name;
s50 names[5] = { { "ПРЫФЫПФ" } };
name = names[0];
name = ( s50 ) { "ABCDEFGH" } ;
strncpy(name.s,"123456",50);
// system("pause");
return 0;
}