Как присвоить строку одной переменной другой переменной?

Это мой первый вопрос на этом сайте.

Как присвоить строку одной переменной другой переменной. Что я здесь делаю неправильно?

#include<stdio.h>
#include<string.h>
main(){

char a[30],b[30];

scanf("%s",a);
b[30]=a[30];
printf("%s",b);

}


person You_were_also_a_noob_in_past    schedule 16.11.2019    source источник
comment
Короткий ответ — позвонить strcpy, как говорят ответы ниже. И это прекрасный ответ на сегодняшний день. Однако вскоре вы услышите об указателях, и все снова запутается. В этот момент вы можете прочитать этот более длинный ответ.   -  person Steve Summit    schedule 16.11.2019


Ответы (2)


Используйте стандартную функцию C strcpy, объявленную в заголовке <string.h>. Например

strcpy( b, a );

Массивы не имеют оператора присваивания.

Что касается вашего заявления

b[30]=a[30];

тогда b[30] и a[30] — это неопределенные объекты типа char, находящиеся за пределами массивов.

person Vlad from Moscow    schedule 16.11.2019

#include<stdio.h>
#include<string.h>
main(){

char a[30],b[30];

scanf("%s", a);
strcpy(b, a);          //header file <string.h>
                       //strcpy(destination, source)
printf("%s",b);

}

Функция strcpy() скопирует содержимое строки a в строку b.

person Aditya Naitan    schedule 16.11.2019