彻底理解C、C++、Win32与COM中的字符串
C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解.
C语言中的字符串
C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直接量写法:"abcd"和 L"abcd"
来表示字符串常量文字量,C语言允许用字符串常量来初始化字符串。标准C函数库提供了printf和wprintf两个版本的输出函数。
#include <stdio.h>
int main(){
char str[] = "abcd";
wchar_t wstr[] = L"abcd数学";
printf("%s\n",str);
wprintf(L"%s\n",wstr);
return 0;
}
纯C语言环境下,可以使用两个函数wcstombs和mbstowcs 来进行宽窄字符串的互相转换,下面一段是C语言中wcstombs的例子
#include <stdio.h>
#include <stdlib.h>
int main(){
char str[] = "abcd";
wchar_t wstr[] = L"bcda";
wcstombs(str,wstr,sizeof(str));
printf("%s\n",str);
return 0;
}
这两个函数都声明在C标准库头文件stdlib.h中。其它配套的字符串操作都在头文件string.h和wchar.h
C++语言中的字符串
C++中我们有了字符串类string和wstring,这两个类都在头文件string当中,并且iostream中也提供了各自对应版本的输出流:
#include <string>
#include <iostream>
int main(){
std::string str = "abcd";
std::wstring wstr = L"abcd";
std::cout<<str<<std::endl;
std::wcout<<wstr<<std::endl;
return 0;
}
C++中转
相关文档:
Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
&n ......
到最后还是自己解决了,导致该问题的原因是在linux启动到最后出现:
/bin/sh: can't access tty; job control turned off
而出现该错误的原因和解决方法google后有千百种,尝试了很多种都没有帮我解决问题。
下面是我自己的解决方法:
1. vi /etc/inittab 第一行添加
console::sysinit:/etc/init.d ......
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie
讨论新闻组及文件
Technorati 标签: JAVA
,C++
,Python
JAVA is not just another programming language. -- 匿名
学习更新的语言,有助于了解别人对旧语言有哪些不满。 -- 匿名
前言
先
说明本文的行文习惯,文章写作流程以本人阅读《Java Progra ......
什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?
我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对
于速度快,只要编得多也就熟能生巧了。
我认为好的程序员应该有以下几方面的素质:
1、有专研精神,勤学善问、举一反 ......
21、goto语句的使用
—————————
N年前,软件开发的一代宗师——迪杰斯特拉(Dijkstra)说过:“goto statment is
harmful !!”,并建议取消goto语句。因为goto语句不利于程序代码的维护性。
这里我也强烈建议不要使用go ......