5s改善前后对比:c语言中,给字符数组(字符串)赋值问题?

来源:百度文库 编辑:中财网 时间:2024/05/08 12:08:28
char a[5]= "1234 ";//这样可以
a= "abcd "; //这样出错,在程序中该如何改变a的内容呢?
-------------------------------------
谢谢作答!
  • rtdb
  • (东临碣石)
  • 等 级:
#1楼 得分:20回复于:2002-11-27 11:38:36strcpy(a, :abcd ");

wsprintf(a, "abcd ") ;
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:潜水时间太长了,咱也发篇原创。VC与Matlab混合编程——基于编译m函数为DLL的方法
  • net_steven
  • (素狼(W))
  • 等 级:
#2楼 得分:0回复于:2002-11-27 11:39:24是否跟编译环境有关?我用的是vc,如果这样,该怎样设定环境?
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:请问:在VC6.0中为什么无法给水晶报表9设置SQL语句
  • isdong
  • (有些事情应该忘记)
  • 等 级:
#3楼 得分:0回复于:2002-11-27 11:39:57啊?
char * p = "abcd ";
strcpy(a,p);

奉劝老兄还是先看看基本的书本再来编程
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:一些思考 一些帮助
  • net_steven
  • (素狼(W))
  • 等 级:
#4楼 得分:0回复于:2002-11-27 11:44:54to rtdb(东临碣石): 谢谢回答,用函数当然可以,我也试过,
但教材上说以我说的方式也可以,特别是定义一个struct的字符数组元素时?
因为初学,想把这个问题搞清楚。在c++中有string类型,当然不用考虑这个问题。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:从编程语言到框架的转变
  • rujor
  • (rujor)
  • 等 级:
#5楼 得分:0回复于:2002-11-27 11:53:32不知道
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
精华推荐:有关指针变量传递的问题?
  • GZCompiler
  • (编译器)
  • 等 级:
#6楼 得分:50回复于:2002-11-27 12:14:10char a[5];
a= "abcd ";
这样附值不行,a[5]是已经分配空间的,而“abcd”是一个常量字符串,他的地址是固定的,所以不能用a= "abcd "这样给a附值,单象下面这样可以:
char* p= "abcd ";
意思就是将常量字符串的地址付给一个字符指针。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • GZCompiler
  • (编译器)
  • 等 级:
#7楼 得分:0回复于:2002-11-27 12:17:32现在的教材质量都不太敢恭维,所以要从教材上学习基础知识,然后多实践。
实践出真知!
你可以作如下试验:
char* a= "abcd ";
char* b= "abcd ";
这样a和b的值是一样的。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • kingcom_xu
  • (冷羽)
  • 等 级:
  • 2

    2

#8楼 得分:0回复于:2002-11-27 12:19:51把C语言学好再说。。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • anlyer
  • (深雨男孩)
  • 等 级:
#9楼 得分:30回复于:2002-11-27 12:25:08个人的理解:(不知道有误否)
字符串其实就是一块连续的内存的地址,在实用其数组或者是指针都是可以访问启迪一个指针就可以了!(数组其实也是指针的一种,不过...)

所以了在变量重视部可以用你这种方法!不过,在我看的书上没看过你这种表达式!
不过,如果是:单个的字符就可以用其字符变量来赋值!!!
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • net_steven
  • (素狼(W))
  • 等 级:
#10楼 得分:0回复于:2002-11-27 12:26:12问题的提出正是求证教材的错误。谢谢。
  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
  • hhuangchunlin
  • (林之韵)
  • 等 级:
#11楼 得分:0回复于:2002-11-27 12:40:33char a[5]= "1234 ";//这样可以
a= "abcd "; //这样出错,在程序中该如何改变a的内容呢?

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