分享

c语言中,给字符数组(字符串)赋值问题?

 LBubble 2011-12-19
char a[5]= "1234 ";//这样可以
a= "abcd "; //这样出错,在程序中该如何改变a的内容呢?
-------------------------------------
谢谢作答!
  • rtdb用户头像
  • rtdb
  • (东临碣石)
  • 等 级:
#1楼 得分:20回复于:2002-11-27 11:38:36
strcpy(a, :abcd ");

wsprintf(a, "abcd ") ;
#2楼 得分:0回复于:2002-11-27 11:39:24
是否跟编译环境有关?我用的是vc,如果这样,该怎样设定环境?
  • isdong用户头像
  • isdong
  • (有些事情应该忘记)
  • 等 级:
#3楼 得分:0回复于:2002-11-27 11:39:57
啊?
char * p = "abcd ";
strcpy(a,p);

奉劝老兄还是先看看基本的书本再来编程
#4楼 得分:0回复于:2002-11-27 11:44:54
to rtdb(东临碣石): 谢谢回答,用函数当然可以,我也试过,
但教材上说以我说的方式也可以,特别是定义一个struct的字符数组元素时?
因为初学,想把这个问题搞清楚。在c++中有string类型,当然不用考虑这个问题。
  • rujor用户头像
  • rujor
  • (rujor)
  • 等 级:
#5楼 得分:0回复于:2002-11-27 11:53:32
不知道
#6楼 得分:50回复于:2002-11-27 12:14:10
char a[5];
a= "abcd ";
这样附值不行,a[5]是已经分配空间的,而“abcd”是一个常量字符串,他的地址是固定的,所以不能用a= "abcd "这样给a附值,单象下面这样可以:
char* p= "abcd ";
意思就是将常量字符串的地址付给一个字符指针。
#7楼 得分:0回复于:2002-11-27 12:17:32
现在的教材质量都不太敢恭维,所以要从教材上学习基础知识,然后多实践。
实践出真知!
你可以作如下试验:
char* a= "abcd ";
char* b= "abcd ";
这样a和b的值是一样的。
#8楼 得分:0回复于:2002-11-27 12:19:51
把C语言学好再说。。
  • anlyer用户头像
  • anlyer
  • (深雨男孩)
  • 等 级:
#9楼 得分:30回复于:2002-11-27 12:25:08
个人的理解:(不知道有误否)
字符串其实就是一块连续的内存的地址,在实用其数组或者是指针都是可以访问启迪一个指针就可以了!(数组其实也是指针的一种,不过...)

所以了在变量重视部可以用你这种方法!不过,在我看的书上没看过你这种表达式!
不过,如果是:单个的字符就可以用其字符变量来赋值!!!
#10楼 得分:0回复于:2002-11-27 12:26:12
问题的提出正是求证教材的错误。谢谢。
#11楼 得分:0回复于:2002-11-27 12:40:33
char a[5]= "1234 ";//这样可以
a= "abcd "; //这样出错,在程序中该如何改变a的内容呢?

这样当然会出错了,因为a 是地址常量,常量怎么能给它赋值呢?
跟编译环境没什么关系,你说教材上说可以那样,那么那本教材可以撇掉了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多