C语言中没有string
来源:互联网 发布:淘宝c店保证金 编辑:程序博客网 时间:2024/05/21 22:58
" C语言中有string类型变量吗"
这里的 string 有 二 义性。
(1) 如果 string 是普通词汇,“C语言中有字符类型变量吗”, 答,有。 字符类型 用 char 声明。
char str[]="This is a string";
(2) 如果 string 是专用词汇,“C语言中有string类型变量吗”,答,没有。string 是 类,是 class, 不是 类型,不是 type.
类 的 声明 用 构造函数初始化,或 new 声明。
这里的 string 有 二 义性。
(1) 如果 string 是普通词汇,“C语言中有字符类型变量吗”, 答,有。 字符类型 用 char 声明。
char str[]="This is a string";
(2) 如果 string 是专用词汇,“C语言中有string类型变量吗”,答,没有。string 是 类,是 class, 不是 类型,不是 type.
类 的 声明 用 构造函数初始化,或 new 声明。
类 -- C++, 不是 C
C语言里压根就没有string这个类型,所以字符串都是通过char数组来存储的, 而<string.h>这个头文件里声明的函数原型也全是针对char数组的种种操作。直到C++中才出现了string这个类(注意是类, 不是类型)。
C语言里有<string.h>这个头文件,所以不要想当然的认为C语言里有string这个 类型。通过下面这种形式来声明string的变量 string aString; 编程时通不过编译。
要想使用标准C++中string类,必须要包含
#include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件
using std::string;using std::wstring;
或
using namespace std;
下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。
用法
string和wstring的用法是一样的,以下只用string作介绍:
string类的构造函数:string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化
此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 ;
string类的字符操作:
const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n);
operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。
const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串
int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目
0 0
- C语言中没有string
- C语言中没有string类
- C语言中没有String类型
- C++中有string类,string是一个类不是一种类型,c语言中没有
- c语言中没有string类型变量怎么办?没有bool怎么办?
- C语言中没有模板
- c中没有string字符串类型
- C语言中String库函数
- C语言中String库函数
- C语言中String库详释
- C语言中String库函数
- C语言中String库函数
- C语言中String库函数
- C语言中没有引用传递,谨记!
- C语言中有没有bool类型?
- C语言中没有定义bool类型
- C语言中有空字符吗?没有!
- C语言中有没有bool类型?
- Socket的原理
- 初学python------pdb调试命令
- HTTP GET POST 详解
- Com学习
- 说说什么是重构(一)重构的起点
- C语言中没有string
- 分享博客Kenshin Cui's Blog
- R12 TCA BANKS, BRANCHES and Bank Accounts
- 仿webqq做的一个webos桌面效果,Jquery结合WCF开发的非常优秀的网页聊天工具
- QItemDelegate is replaced by QStyleItemDelegate
- SAP中负数的表示增强 负号从数字后更改到数字前面
- 解决Fragment 重复加载,刷新问题
- visual studio 下LabelTTF显示中文乱码的解决方案
- 谈谈JAVA的代理模式认识 一——为什么使用代理模式