c中string头文件怎么写

1.C++ string在头文件中的使用

1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。

上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数 生成str的复制品 c) string s(str,stridx) //将字符串str内"始于位置stridx"的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。

g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。 2.字符串操作函数 这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。

a) =,assign() //赋以新值 b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符 d) insert() //插入字符 e) erase() //删除字符 f) clear() //删除全部字符 g) replace() //替换字符 h) + //串联字符串 i) ==,!=,<,<=,>,>=,compare() //比较字符串 j) size(),length() //返回字符数量 k) max_size() //返回字符的可能最大个数 l) empty() //判断字符串是否为空 m) capacity() //返回重新分配之前的字符容量 n) reserve() //保留一定量内存以容纳一定数量的字符 o) [ ], at() //存取单一字符 p) >>,getline() //从stream读取某值 q) << //将谋值写入stream r) copy() //将某值赋值为一个C_string s) c_str() //将内容以C_string返回 t) data() //将内容以字符数组形式返回 u) substr() //返回某个子字符串 v)查找函数 w)begin() end() //提供类似STL的迭代器支持 x) rbegin() rend() //逆向迭代器 y) get_allocator() //返回配置器 下面详细介绍: 2.1 C++字符串和C字符串的转换 C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加'\0'。c_str()返回一个以'\0'结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或 字符数组内。

C++字符串并不以'\0'结尾。我的建议是在程序中能使用C++字符串就使用,除非万不得已不选用c_string。

由于只是简单介绍,详细介绍掠过,谁想进一步了解使用中的注意事项可以给我留言(到我的收件箱)。我详细解释。

2.2 大小和容量函数 一个C++字符 串存在三种大小:a)现有的字符数,函数是size()和length(),他们等效。Empty()用来检查字符串是否为空。

b)max_size() 这个大小是指当前C++字符串最多能包含的字符数,很可能和机器本身的限制或者字符串所在位置连续内存的大小有关系。我们一般情况下不用关心他,应该大小足够我们用的。

但是不够用的话,会抛出length_error异常c)capacity()重新分配内存之前 string所能包含的最大字符数。这里另一个需要指出的是reserve()函数,这个函数为string重新分配内存。

重新分配的大小由其参数决定, 默认参数为0,这时候会对string进行非强制性缩减。 还有必要再重复一下C++字符串和C字符串转换的问 题,许多人会遇到这样的问题,自己做的程序要调用别人的函数、类什么的(比如数据库连接函数Connect(char*,char*)),但别人的函数参 数用的是char*形式的,而我们知道,c_str()、data()返回的字符数组由该字符串拥有,所以是一种const char*,要想作为上面提及的函数的参数,还必须拷贝到一个char*,而我们的原则是能不使用C字符串就不使用。

那么,这时候我们的处理方式是:如果 此函数对参数(也就是char*)的内容不修改的话,我们可以这样Connect((char*)UserID.c_str(), (char*)PassWD.c_str()),但是这时候是存在危险的,因为这样转换后的字符串其实是可以修改的(有兴趣地可以自己试一试),所以我强调除非函数调用的时候不对参数进行修改,否则必须拷贝到一个char*上去。当然,更稳妥的办法是无论什么情况都拷贝到一个char*上去。

同时我们也祈 祷现在仍然使用C字符串进行编程的高手们(说他们是高手一点儿也不为过,也许在我们还穿开裆裤的时候他们就开始编程了,哈哈…)写的函数都比较规范,那样 我们就不必进行强制转换了。 2.3元素存取 我们可以使用下标操作符[]和函数at()对元素包含的字符进行访问。

但是应该注意的是操作符[]并不检查索引是否有效(有效索引0~str.length()),如果索引失效,会引起未定义的行为。而at()会检查,如果使用 at()的时候索引无效,会抛出out_of_range异常。

有一个例外不得不说,const string a;的操作符[]对索引值是a.length()仍然有效,其返回值是'\0'。其他的各种情况,a.length()索引都是无效的。

举例如下。

2.c语言中string怎么用啊

C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。 下面介绍几个最常用的字符串函数。

1.字符串输出函数 puts 格式: puts (字符数组名) 功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串

#include"stdio.h"

main()

{

static char c[]="BASIC\ndBASE";

puts(c);

}

2.字符串输入函数gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。 本函数得到一个函数值,即为该字符数组的首地址。

#include"stdio.h"

main()

{

char st[15];

printf("input string:\n");

gets(st);

puts(st);

}

3.字符串连接函数strcat 格式: strcat (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\0”。本函数返回值是字符数组1的首地址。

#include"string.h"

main()

{

static char st1[30]="My name is ";

int st2[10];

printf("input your name:\n");

gets(st2);

strcat(st1,st2);

puts(st1);

}

4.字符串拷贝函数strcpy 格式: strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同拷贝。字符数名2, 也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

#include"string.h"

main()

{

static char st1[15],st2[]="C Language";

strcpy(st1,st2);

puts(st1);printf("\n");

}

5.字符串比较函数strcmp 格式: strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

字符串1=字符串2,返回值=0;

字符串2〉字符串2,返回值〉0;

字符串1〈字符串2,返回值〈0。

本函数也可用于比较两个字符串常量,或比较数组和字符串常量。

#include"string.h"

main()

{ int k;

static char st1[15],st2[]="C Language";

printf("input a string:\n");

gets(st1);

k=strcmp(st1,st2);

if(k==0) printf("st1=st2\n");

if(k>0) printf("st1>st2\n");

if(k<0) printf("st1<st2\n");

}

6.测字符串长度函数strlen 格式: strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志'\0') 并作为函数返回值。

#include"string.h"

main()

{ int k;

static char st[]="C language";

k=strlen(st);

printf("The lenth of the string is %d\n",k);

}

3.c语言中string怎么用啊

用于输入输出的字符串函数, 在使用前应包含头文件"stdio.h" ; 使用其它字符串函数则应包含头文件"string.h"。

C语言几乎是现在所有高校必须学的科目之一,现在软件业的发展急需C语言天才来进行开发。C语言提供了丰富的字符串处理函数, 大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担,给高效的编程提供了保障。

puts 功能就是把字符数组中的字符串输出到显示器,字符串输入函数gets 格式: gets (字符数组名) 功能:从标准输入设备键盘上输入一个字符串。

c中string头文件怎么写

转载请注明出处育才学习网 » c中string头文件怎么写

知识

写关于橘子树的作文开头怎么写

阅读(252)

本文主要为您介绍写关于橘子树的作文开头怎么写,内容包括现在是春季,我要写一篇关于橘子树的作文.请问怎么写开头,写橘子的开头作文,关于写橘子树的作文28个字。我家花盆里栽了一棵橘树,今年夏天,小小的枝干上竟然结了三个橘子。我们一家人特

知识

礼炮焰火狂欢夜怎么写

阅读(200)

本文主要为您介绍礼炮焰火狂欢夜怎么写,内容包括用礼炮焰火,狂欢夜写段话,礼炮.焰火.狂欢夜怎样写成一句话,礼炮.焰火.狂欢夜怎样写成一句话。这时,一阵阵烟花鞭炮声响彻耳畔,一筒筒灿烂的烟花腾空而起,像是一位位美丽的姑娘,展示着她们漂亮的

知识

淄河大桥的作文怎么写

阅读(193)

本文主要为您介绍淄河大桥的作文怎么写,内容包括至喜大桥的作文怎么写,写大桥的作文,写一篇关于溆浦大桥的作文溆浦大桥的作文怎么写不少于300字。桥,大家一定都不陌生,可我今天的是我家乡的一座小石桥。 桥的样子很特别。上面有整整齐齐的小

知识

劳务外包工转正式工申请怎么写

阅读(349)

本文主要为您介绍劳务外包工转正式工申请怎么写,内容包括劳务派遣工转正式工申请书啥写,因之前我是劳务工现在想转为正式工这个申请咋写,公司职工转正式工证申请书如何写。转正申请 我到XXX公司工作已经快两个月了,在这期间,我学到了很多东西

知识

plc关于m7130机床的改造怎么写

阅读(227)

本文主要为您介绍plc关于m7130机床的改造怎么写,内容包括小弟做的毕业设计是用PLC对M7120磨床进行改造,前言怎么写啊,,PLC控制技术在M7130平面磨床电气控制中的应用,请教plc在机床改造方面的应用。给您提供一些内容您可以进行参考,内容如下G

知识

家人亲人的心情怎么写

阅读(205)

本文主要为您介绍家人亲人的心情怎么写,内容包括亲人聚会的心情说说,想念家乡,思念亲人的心情怎样表达,怎么描述失去亲人的心情。亲人聚会的心情说说如下:朋友的相聚总是想起以前的往事,虽然都没哈事,但真的都是欢乐。 2、桌上有肉,杯中有酒,月

知识

白雪----正面怎么写反面怎么写

阅读(233)

本文主要为您介绍白雪----正面怎么写反面怎么写,内容包括用白雪这个词分别从正面和反面立意,写一个有寓意的句子,依照例句,从下面的事物中任选一个,分别从正面和反面立意,写两个,小学语文蜡烛的正面和反面写两个人生哲理还有白雪。雪花自屋

知识

c项目需求怎么写

阅读(232)

本文主要为您介绍c项目需求怎么写,内容包括项目需求该怎么写,项目需求报告要怎么写,项目需求分析怎么写。如果是一个软件系统的项目,站在项目角度需求管理包括项目需求、用户需求、业务需求、功能需求、非功能需求等内容。而项目管理文档中

知识

论文电脑上怎么写

阅读(305)

本文主要为您介绍论文电脑上怎么写,内容包括毕业论文怎么写,在电脑上怎么写论文,先点开什么,在电脑上怎么写文章。论文构成 毕业论文格式应规范,必须由封面、目录、正文(包括中外文题名、中外文摘要、中外文关键词、正文、参考文献和致谢)三部

知识

驿站为话题怎么写

阅读(197)

本文主要为您介绍驿站为话题怎么写,内容包括以人生的驿站为话题的作文,以驿站为题作文,以驿站为题作文。在漫长的人生道路上,有着许许多多的困难,有一些些伤心事、有一些些开心事,虽然人生有这那么多的挫折,那么多的困难,但是.我们还是要坚强的

知识

自行车这个英语单词怎么写

阅读(229)

本文主要为您介绍自行车这个英语单词怎么写,内容包括自行车自行车的英语单词怎么写,自行车的英语单词怎么写,自行车的英文单词怎么写。骑自行车:by bike2、ride a bike(bicycle)3、bicycle riding

知识

天气太热了怎么写具体

阅读(200)

本文主要为您介绍天气太热了怎么写具体,内容包括天气太热了怎么把事情写具体,改写句子天气太热了(用具体数字写具体),天气太热了后面怎么分写。1。夏天来了,天气越来越热了,大树上,知了在树上拼命地叫:“热死了,热死了……”正午,太阳像个火球一样

知识

劳动体会怎么写是写作文吗

阅读(234)

本文主要为您介绍劳动体会怎么写是写作文吗,内容包括作文《劳动的体会和感受》怎么写,劳动体会怎么写,劳动的感受怎么写。希望能帮上你的忙《劳动的体会和感受》现在已经记不清什么时候跟着爸爸妈妈打扫房间了,我还小的时候,爸爸妈妈隔几天,就

知识

时髦的可爱的英语单词怎么写

阅读(225)

本文主要为您介绍时髦的可爱的英语单词怎么写,内容包括时髦的英文单词怎么写,时尚的英语单词怎么写,可爱的英语单词怎么写。共有三个字可用: trend/trendy; fashion/fashionable; 及 vogue/in vogue:trendy

知识

python头文件怎么写

阅读(205)

本文主要为您介绍python头文件怎么写,内容包括python中如何引用头文件,如何在python中使用C的头文件,sublimetext3怎么编写python怎么添加头文件。win下py代码,头文件是#-*-encoding:utf-8-*-,是告诉python解释器, 应该以utf-8编码来解释py文

知识

c语言中的头文件怎么写

阅读(232)

本文主要为您介绍c语言中的头文件怎么写,内容包括C语言如何写头文件,c语言头文件怎么写~最好举个例子非常感谢,c语言头文件怎么写呀。/*头文件内容,假设名字是test.h*/#ifndef MYHEADFILE#define MYHEADFILEvoid InitIn

知识

线性表头文件怎么写

阅读(227)

本文主要为您介绍线性表头文件怎么写,内容包括数据结构线性表基本格式是什么意思啊各种头文件都代表什么意,C++包含线性表的头文件是什么,线性表怎么写。线性表代表的是一种逻辑结构,譬如数组也是线性表,可以直观得看成一条线上有很多个数据

知识

c中头文件怎么写

阅读(205)

本文主要为您介绍c中头文件怎么写,内容包括c语言头文件怎么写呀,C语言里面怎么写头文件,c语言头文件怎么写~最好举个例子非常感谢。C++/C程序的头文件以“.h”为后缀。以下是假设名称为graphics.h的头文件:#ifndef GRAPHICS_H//作用:防止

知识

c头文件和源文件怎么写

阅读(243)

本文主要为您介绍c头文件和源文件怎么写,内容包括C语言中头文件和源文件写法有什么区别,C语言中头文件和源文件写法有什么区别,C语言代码的头文件与源文件有什么区别。相同点:头文件与源代码都是源文件,都用纯文本文件存储,都需要遵照C/C++语

知识

java怎么写头文件

阅读(207)

本文主要为您介绍java怎么写头文件,内容包括为什么java不用写头文件,java都头文件,以及什么时候用,java语言中要使用函数Math头文件应该怎样写急~~。Math类属于java.lang包中的函数,所以在使用的过程中,不需要导入这个库,可以直接使用的。pack

知识

vc头文件怎么写

阅读(202)

本文主要为您介绍vc头文件怎么写,内容包括C++头文件怎么写,用vc6.0写头文件,vc中的头文件。新建linearStack2.h在里面写类的声明新建linearStack2.cpp (注意 名称可以不用 linearStack2 你

知识

数据结构头文件怎么写

阅读(226)

本文主要为您介绍数据结构头文件怎么写,内容包括我想知道在数据结构中的头文件的主要是起什么作用,头文件该怎么写,求数据结构中所有头文件书写形式(C++),数据结构的初学者,不知道怎么做头文件,哪位大虾能把顺序表的头。templateclass Linear

[/e:loop]