菜鸟:vc++ 一般是怎么声明和赋值字符串的?

我是用c和windowsAPI开发windows窗口程序,要用到字符串的声明和赋值,我如下这样写,均错误,所以求正确的写法,感谢!charmyArticle[1000];... 我是用 c 和 windows API 开发windows 窗口程序,
要用到 字符串的声明 和 赋值,
我如下这样写,均错误,所以求正确的写法,感谢!

char myArticle[1000];
myArticle = "菜鸟求助,怎么声明和赋值字符串啊";

char myAritlce[];
myAritlce = "菜鸟求助,怎么声明和赋值字符串啊";

要求:
1. 要适用于 用 c和 win API 开发程序的要求。所以, 需要哪些头文件,请写上。
不要用 到MFC 中的东西。
2. 字符串 声明 和 赋值 要分开 (即分两条语句写)
3. 我的字符串长度不能确定。(但能确定最大长度)
4. 用 c 开发 windows 程序 最常见,最主流的 字符串声明 和赋值方法是什么。
展开
 我来答
Frank7258
2011-03-27 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:563万
展开全部
你可以
LPCTSTR myarticle = _T("abcdef");
如果你生命的是数组,那么需要用_tcscpy或者_tcscpy_s将字符串复制进数组。

另外,如果开始学习Win32编程,要熟悉Windows API的变量别名
LPCTSTR = const TCHAR*
LPTSTR = TCHAR*
LPCSTR = const char*
LPSTR = char*
LPCWSTR = const wchar_t*
LPWSTR = w_char*

说一说TCHAR和宏_T
TCHAR会根据编译器是否打开了Unicode自动变成char或者wchar_t。事实上目前新写程序都应当使用Unicode,也就是wchar_t类型,一个字符两个字节。
还有一个在使用TCHAR的时候,写字符串的时候总是用_T或者TEXT宏包围他们,就像上面这样,这也是为了自动适应Unicode的需要,在普通ANSI编码的时候,_T什么也不做,在Unicode编码的时候会变成Unicode字符串,也就是在字符串之前加上L
"ANSI字符串"
L"Unicode字符串"

如果你没弄清楚这个,很有可能经常会出现编译器说char*不能转换成wchar_t*类似的错误。
百度网友b3ccea984
2011-03-20
知道答主
回答量:7
采纳率:0%
帮助的人:4.3万
展开全部
//1.声明
char * pStr = NULL;
//2.在声明中赋值
const char * pStr = "hello world"; //const可以省略
//3.字符串赋值,首先指针要在内存中有存放字符串的空间
(1) char str[20];//长度为20个字符,实际上只能放19个字符最后一个字符为‘\0’
(2) char* str = new char[20]; //使用动态内存
//字符串赋值,包含string.h头文件
strcpy( str, "hello world" ) ;//为了安全起见,可以使用strncpy
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ILOVE_BANHUA
2011-03-19
知道答主
回答量:10
采纳率:0%
帮助的人:6.4万
展开全部
用CString类是可以的。不过一般使用数组最好是在动态分配的缓冲区中,例如:
char* myArtile=new char[MAX_PATH];
myArtile=“菜鸟求助,怎么声明和赋值字符串啊";
MAX_PATH为系统定义的最大字符串长度,为65535,你也可以自己定义一个长度。
追问
CSting 和 window.h 冲突怎么办? windows.h 必须得有啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-21
展开全部
c中字符串是不支持=赋值的
如果不能在声明中赋值(这就是最常见的),只能对字符串进行拷贝操作,可以用strcpy(myArticle, "菜鸟求助,怎么声明和赋值字符串啊");
需要的头文件: #include<string.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Scitin
2011-03-19 · TA获得超过2052个赞
知道小有建树答主
回答量:1487
采纳率:0%
帮助的人:888万
展开全部
char myArticle[1000] = "菜鸟求助,怎么声明和赋值字符串啊";
char myAritlce[]= "菜鸟求助,怎么声明和赋值字符串啊";//这个比较好,myAritlce的长度会自动分配成后面的字符串长度,不会造成浪费
追问
麻烦请看清我的第2条要求, 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式