如何将char*所指字符串赋给一个char s[]

PhoenixWaVe 2004-07-02 04:28:19
有一个char* fileName,我想将她所指的字符串赋给一个char s[]
...全文
336 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuijinbird 2004-08-19
  • 打赏
  • 举报
回复
char * 与 char []是不一样的.
char *p;char s[];
p=s; //This is all alright.
s=p; //Here is wrong.数组的首指针是个常量指针,不能更改.
PhoenixWaVe 2004-08-19
  • 打赏
  • 举报
回复
回复人: changeme(我本楚狂人)
char a[strlen(p)]; ??
数组的长度在编译的时候就要知道,不能等运行的时候,这样肯定编译不过。

c99支持变长数组,VC6不行,Devcpp可以
huchengyu 2004-08-18
  • 打赏
  • 举报
回复
char* 和 char []本来就是一样的。
iforem 2004-07-06
  • 打赏
  • 举报
回复
to MSDA(被程序折磨着)

a是一常量,不能被赋值

直接用strcpy()就可以了
lovingyou 2004-07-06
  • 打赏
  • 举报
回复
#include <string>
#include <vector>
using namespace std;
vector<string> v_str;
void main()
{
char* pStr = "Dont Forget Me!";
v_str.push_back(pStr);
v_str.push_back("My Name Is Michael Jackson!");
v_str.push_back("It's A Lie!");
vector<string>::iterator it_str = v_str.begin();
for(;it_str!=v_str.end();it_str++)
{
printf("str = %s \n",it_str->c_str());
}

}
lovingyou 2004-07-06
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "string.h"

void main()
{
char *p;
p="sdkdld";
char *a = new char[strlen(p)+1];
strcpy(a,p);
printf("%s\n",a);
delete []a;
}
shifan 2004-07-06
  • 打赏
  • 举报
回复
但是总觉得在VC和BCB下调试std::string都好困难,AnsiString又只有BCB有
用new和malloc又不安全。。。
shifan 2004-07-06
  • 打赏
  • 举报
回复
字符串么,还是用std::string好
用AnsiString也不错
实在不行就new和malloc吧
前两个都可以自由伸缩的
snakyo 2004-07-06
  • 打赏
  • 举报
回复
同意MSDN
解决了长度问题,:)~~
jiangfeng999 2004-07-05
  • 打赏
  • 举报
回复
#include<alloc.h>
#include<stdio.h>
#include<string.h>
void main()
{
char *p="abcd";
char a[];
a=(char *)malloc(char * strlen(p));
strcpy(a,p);
}


pcyy 2004-07-05
  • 打赏
  • 举报
回复
看来我也只有顶了
cxjddd 2004-07-04
  • 打赏
  • 举报
回复
用 std::string 也简单啊:)
changeme 2004-07-04
  • 打赏
  • 举报
回复
new
delete
海上的云 2004-07-04
  • 打赏
  • 举报
回复
看来我也只有顶了
0uhuang 2004-07-04
  • 打赏
  • 举报
回复
int i //数组长度
char *p=new char[i];
delete []p;
myazhe 2004-07-03
  • 打赏
  • 举报
回复
strcpy( fileName,s)
o1n 2004-07-03
  • 打赏
  • 举报
回复
楼上那种方法好像编译时有错误在VC6.0下。
我改了改
#include "stdio.h"
#include "string.h"

void main()
{
char *p="abcd efg";
char a[100];
strcpy(a,p);
printf("%s",a);
}
PhoenixWaVe 2004-07-03
  • 打赏
  • 举报
回复
我知道了...
#include "stdio.h"
#include "string.h"

void main()
{
char *p="abcd";
char a[strlen(p)];
strcpy(a,p);
}
xjp6688 2004-07-03
  • 打赏
  • 举报
回复
动态
kkuycn 2004-07-03
  • 打赏
  • 举报
回复
char a[20];<--------不要预先定义好,我希望p有多长,a就多长

不太现实把
加载更多回复(15)

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧