【问题标题】:Is assignment of strings valid?字符串的分配是否有效?
【发布时间】:2013-11-22 18:53:24
【问题描述】:

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

需要左值

我的代码:

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

【问题讨论】:

  • 有一点要记住,至少对于 C,字符串只是一个指向 char 的指针。将地址复制到指针与复制内容不同。
  • 它是 char s1[]char s2[]...抱歉打错了...现在告诉我哪里错了?

标签: c string character


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 2013-02-13
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2019-05-05
    相关资源
    最近更新 更多