字符串赋值是否有效?

时间:2013-11-22 18:53:25

标签: c string character

s1=s2有效声明吗?它给了我错误:

  

需要左值

我的代码:

#include<stdio.h>
#include<conio.h>
void main()
{
    char s[1]="integ";
    char s[2]="systems";
    s1=s2;
    printf("%s", s1);
    getch();
}

1 个答案:

答案 0 :(得分:5)

您尚未定义名为s2的变量。您有两个变量s1s。此外,您不能分配像这样的字符数组。如果你需要在初始化之后更改变量指向的数组,则将它们声明为指针,或者使用strcpy()将一个字符串的内容复制到另一个字符串中(当然要注意溢出)。最后,您将s声明为大小为2,然后使用长度为7个字符的字符串初始化它。尝试:

char *s1 = "integ";
char *s2 = "systems";
s1 = s2;
printf(%s", s1);