求c++大神给说下string中的append()函数的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求c++大神给说下string中的append()函数的用法相关的知识,希望对你有一定的参考价值。

求大神给说下,给发个资料也好,谢谢

要想使用标准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为起始位置的字符数组中,返回实际拷贝的数目

string的特性描述:
int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数)
int max_size()const; //返回string对象中可存放的最大字符串的长度
int size()const; //返回当前字符串的大小
int length()const; //返回当前字符串的长度
bool empty()const; //当前字符串是否为空
void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分
string类的输入输出操作:
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
string的赋值:
string &operator=(const string &s);//把字符串s赋给当前字符串
string &assign(const char *s);//用c类型字符串s赋值
string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值
string &assign(const string &s);//把字符串s赋给当前字符串
string &assign(int n,char c);//用n个字符c赋值给当前字符串
string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串
string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串
string的连接:
string &operator+=(const string &s);//把字符串s连接到当前字符串的结尾
string &append(const char *s); //把c类型字符串s连接到当前字符串结尾
string &append(const char *s,int n);//把c类型字符串s的前n个字符连接到当前字符串结尾
string &append(const string &s); //同operator+=()
string &append(const string &s,int pos,int n);//把字符串s中从pos开始的n个字符连接到当前字符串的结尾
string &append(int n,char c); //在当前字符串结尾添加n个字符c
string &append(const_iterator first,const_iterator last);//把迭代器first和last之间的部分连接到当前字符串的结尾

string的比较:
bool operator==(const string &s1,const string &s2)const;//比较两个字符串是否相等
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int compare(const string &s) const;//比较当前字符串和s的大小
int compare(int pos, int n,const string &s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int compare(int pos, int n,const string &s,int pos2,int n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中
                                  //pos2开始的n2个字符组成的字符串的大小
int compare(const char *s) const;
int compare(int pos, int n,const char *s) const;
int compare(int pos, int n,const char *s, int pos2) const;
compare函数在>时返回1,<时返回-1,==时返回0

string的子串:
string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
string的交换:
void swap(string &s2); //交换当前字符串与s2的值

string类的查找函数:
int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置
int find(const char *s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
int find(const char *s, int pos, int n) const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置
int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const;
int rfind(const string &s,int pos = npos) const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置
int find_first_of(const char *s, int pos = 0) const;
int find_first_of(const char *s, int pos, int n) const;
int find_first_of(const string &s,int pos = 0) const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int find_first_not_of(char c, int pos = 0) const;
int find_first_not_of(const char *s, int pos = 0) const;
int find_first_not_of(const char *s, int pos,int n) const;
int find_first_not_of(const string &s,int pos = 0) const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int find_last_of(char c, int pos = npos) const;
int find_last_of(const char *s, int pos = npos) const;
int find_last_of(const char *s, int pos, int n = npos) const;
int find_last_of(const string &s,int pos = npos) const;
int find_last_not_of(char c, int pos = npos) const;
int find_last_not_of(const char *s, int pos = npos) const;
int find_last_not_of(const char *s, int pos, int n) const;
int find_last_not_of(const string &s,int pos = npos) const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
参考技术A

append函数是向string 的后面追加字符或字符串。

(1)向string 的后面加C-string

basic_string& append( const value_type* _Ptr );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c ); // s=”Hello Out There”

(2)向string 的后面加C-string 的一部分

basic_string& append( const value_type* _Ptr, size_type _Count );
string s ( "Hello " ); // s=”Hello ”
const char *c = "Out There ";
s.append ( c , 3 ); // s=”Hello Out”

(3)向string 的后面加string(有两种方法)

basic_string& append( const basic_string& _Str );
string s1 ( "Hello " ), s2 ( "Wide " ), s3( "World " );
s1.append ( s2 ); // s1=”Hello Wide”
s1 += s3; // s1=”Hello Wide World”

(4)向string 的后面加string 的一部分 ---A

basic_string& append( const basic_string& _Str, size_type _Off,
size_type _Count );
string s1 ( "Hello " ), s2 ( "Wide World " );
s1.append ( s2 , 5 , 5 ); // s1=”Hello World”

(5)向string 的后面加string 的一部分 ---B

template<class InputIterator> basic_string& append(
InputIterator _First, InputIterator _Last );
string str1f ( "Hello " ), str2f ( "Wide World" );
str1f.append ( str2f.begin ( ) + 5 , str2f.end ( ) );
 // s1=”Hello World”

(6)向string 的后面加多个字符

basic_string& append( size_type _Count, value_type _Ch );
string str1e ( "Hello " );
str1e.append ( 4 , '!' ); // s1=”Hello !!!!”

 

参考:http://www.cppblog.com/Sandywin/archive/2008/01/20/41516.aspx

本回答被提问者和网友采纳
参考技术B 要想使用标准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为起始位置的字符数组中,返回实际拷贝的数目
string的特性描述:
int
capacity()const;
//返回当前容量(即string中不必增加内存即可存放的元素个数)
int
max_size()const;
//返回string对象中可存放的最大字符串的长度
int
size()const;
//返回当前字符串的大小
int
length()const;
//返回当前字符串的长度
bool
empty()const;
//当前字符串是否为空
void
resize(int
len,char
c);//把字符串当前大小置为len,并用字符c填充不足的部分
string类的输入输出操作:
string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。
函数getline(istream
&in,string
&s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
string的赋值:
string
&operator=(const
string
&s);//把字符串s赋给当前字符串
string
&assign(const
char
*s);//用c类型字符串s赋值
string
&assign(const
char
*s,int
n);//用c字符串s开始的n个字符赋值
string
&assign(const
string
&s);//把字符串s赋给当前字符串
string
&assign(int
n,char
c);//用n个字符c赋值给当前字符串
string
&assign(const
string
&s,int
start,int
n);//把字符串s中从start开始的n个字符赋给当前字符串
string
&assign(const_iterator
first,const_itertor
last);//把first和last迭代器之间的部分赋给字符串
string的连接:
string
&operator+=(const
string
&s);//把字符串s连接到当前字符串的结尾
string
&append(const
char
*s);
//把c类型字符串s连接到当前字符串结尾
string
&append(const
char
*s,int
n);//把c类型字符串s的前n个字符连接到当前字符串结尾
string
&append(const
string
&s);
//同operator+=()
string
&append(const
string
&s,int
pos,int
n);//把字符串s中从pos开始的n个字符连接到当前字符串的结尾
string
&append(int
n,char
c);
//在当前字符串结尾添加n个字符c
string
&append(const_iterator
first,const_iterator
last);//把迭代器first和last之间的部分连接到当前字符串的结尾
string的比较:
bool
operator==(const
string
&s1,const
string
&s2)const;//比较两个字符串是否相等
运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int
compare(const
string
&s)
const;//比较当前字符串和s的大小
int
compare(int
pos,
int
n,const
string
&s)const;//比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int
compare(int
pos,
int
n,const
string
&s,int
pos2,int
n2)const;//比较当前字符串从pos开始的n个字符组成的字符串与s中
                                  //pos2开始的n2个字符组成的字符串的大小
int
compare(const
char
*s)
const;
int
compare(int
pos,
int
n,const
char
*s)
const;
int
compare(int
pos,
int
n,const
char
*s,
int
pos2)
const;
compare函数在>时返回1,<时返回-1,==时返回0
string的子串:
string
substr(int
pos
=
0,int
n
=
npos)
const;//返回pos开始的n个字符组成的字符串
string的交换:
void
swap(string
&s2);
//交换当前字符串与s2的值
string类的查找函数:
int
find(char
c,
int
pos
=
0)
const;//从pos开始查找字符c在当前字符串的位置
int
find(const
char
*s,
int
pos
=
0)
const;//从pos开始查找字符串s在当前串中的位置
int
find(const
char
*s,
int
pos,
int
n)
const;//从pos开始查找字符串s中前n个字符在当前串中的位置
int
find(const
string
&s,
int
pos
=
0)
const;//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值
int
rfind(char
c,
int
pos
=
npos)
const;//从pos开始从后向前查找字符c在当前串中的位置
int
rfind(const
char
*s,
int
pos
=
npos)
const;
int
rfind(const
char
*s,
int
pos,
int
n
=
npos)
const;
int
rfind(const
string
&s,int
pos
=
npos)
const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值
int
find_first_of(char
c,
int
pos
=
0)
const;//从pos开始查找字符c第一次出现的位置
int
find_first_of(const
char
*s,
int
pos
=
0)
const;
int
find_first_of(const
char
*s,
int
pos,
int
n)
const;
int
find_first_of(const
string
&s,int
pos
=
0)
const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos
int
find_first_not_of(char
c,
int
pos
=
0)
const;
int
find_first_not_of(const
char
*s,
int
pos
=
0)
const;
int
find_first_not_of(const
char
*s,
int
pos,int
n)
const;
int
find_first_not_of(const
string
&s,int
pos
=
0)
const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos
int
find_last_of(char
c,
int
pos
=
npos)
const;
int
find_last_of(const
char
*s,
int
pos
=
npos)
const;
int
find_last_of(const
char
*s,
int
pos,
int
n
=
npos)
const;
int
find_last_of(const
string
&s,int
pos
=
npos)
const;
int
find_last_not_of(char
c,
int
pos
=
npos)
const;
int
find_last_not_of(const
char
*s,
int
pos
=
npos)
const;
int
find_last_not_of(const
char
*s,
int
pos,
int
n)
const;
int
find_last_not_of(const
string
&s,int
pos
=
npos)
const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找
参考技术C http://www.cplusplus.com/reference/string/string/append/

VB 我是菜鸟,求高手说下怎么弄··

``````

先下一个VB6.0下来安装在自己电脑上。然后打开它,新建一个标准exe程序。
你可以去下载一个简单的教程来看,当然可以看视频,然后我就教你写一个mp3播放器。

(1).点击菜单“工程”---“引用”,引用Windows Media Player。和CommonDialog。

(2).在窗体中添加控件CommonDialog、Windows Media Player。添加代码,按钮按提示添加:

Public volum As Integer \'声音全局变量定义,用于记录播放过程中的声音值

Public bool As Boolean \'全局变量定义

Sub openn() \'过程

On Error Resume Next \'出错处理

CommonDialog1.ShowOpen \'显示打开通用对话框

If CommonDialog1.FileName <> "" Then

bool = False

WindowsMediaPlayer1.Visible = True

WindowsMediaPlayer1.URL = CommonDialog1.FileName \'播放路径

End If

volum = WindowsMediaPlayer1.settings.volume \'声音值

End Sub

Private Sub Form_DblClick() \'窗体双击事件

Call openn \'调用自定义过程

End Sub

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) \'接收拖曳信息

On Error Resume Next

bool = False

WindowsMediaPlayer1.URL = Data.Files.Item(1)

End Sub

Private Sub Command1_Click() \'打开按钮Command1

Call openn \'调用open

End Sub

Private Sub Command2_Click() \'暂停按钮Command2

bool = True

WindowsMediaPlayer1.Controls.Pause

End Sub

Private Sub Command3_Click() \'停止播放按钮Command3

bool = True

WindowsMediaPlayer1.Controls.Stop

End Sub

Private Sub Command4_Click() \'增大音量按钮Command4

WindowsMediaPlayer1.settings.volume = WindowsMediaPlayer1.settings.volume + 5

volum = WindowsMediaPlayer1.settings.volume

End Sub

Private Sub Command5_Click() \'减小音量按钮Command5

WindowsMediaPlayer1.settings.volume = WindowsMediaPlayer1.settings.volume - 5

volum = WindowsMediaPlayer1.settings.volume

End Sub

Private Sub Command6_Click() \'静音按钮Command6

If WindowsMediaPlayer1.settings.mute Then

WindowsMediaPlayer1.settings.mute = False

Else

WindowsMediaPlayer1.settings.mute = True

End If

End Sub

Private Sub Command7_Click() \'全屏按钮Command7

On Error Resume Next

WindowsMediaPlayer1.FullScreen = True

End Sub

Private Sub Command8_Click() \'退出程序按钮Command8

Unload Me

End Sub

Private Sub WindowsMediaPlayer1_StatusChange() \'循环播放实现

On Error Resume Next

If bool = False Then

WindowsMediaPlayer1.Controls.Play

End If

End Sub

具体的属性方法:

enableContextMenu:Boolean 显示/不显示播放位置的右键菜单
fullScreen:boolean 全屏显示
stretchToFit:boolean 非全屏状态时是否伸展到最佳大小
uMode:string 播放器的模式,full:有下面的控制条; none:只有播放部份没有控制条
playState:integer 当前控件状态,下面是三种基本状态:
3:正在播放
2:暂停
1:已停止
状态变化时会触发OnStatusChange事件

[controls]
可通过WindowsMediaPlayer.controls对播放器进行控制并取得相关的一些信息:
controls.play; 播放
controls.stop; 停止
controls.pause; 暂停
controls.currentPosition:Double 当前播放进度
controls.currentPositionString:string 时间格式的字符串 "0:32"

[currentMedia]
可以通过WindowsMediaPlayer.currentMedia取得当前媒体的信息
currentMedia.duration Double 总长度
currentMedia.durationString 时间格式的字符串 "4:34"

[settings]
可以通过WindowsMediaPlayer.settings对播放器进行设置,包括音量和声道等。
settings.volume:integer 音量 (0-100)
settings.balance:integer 声道,通过它应该可以进行立体声、左声道、右声道的控制。

=================

版本2:

属性/方法名: 说明:
[基本属性]  
url:string指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //当前播放列表属性
currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
MediaPlayer1.Play          播放
MediaPlayer1.Stop          停止
MediaPlayer1.Pause          暂停
MediaPlayer1.PlayCount        文件播放次数
MediaPlayer1.AutoRewind       是否循环播放
MediaPlayer1.Balance         声道
MediaPlayer1.Volume         音量
MediaPlayer1.Mute          静音
MediaPlayer1.EnableContextMenu    是否允许在控件上点击鼠标右键时弹出快捷菜单
MediaPlayer1.AnimationAtStart    是否在播放前先播放动画
MediaPlayer1.ShowControls      是否显示控件工具栏
MediaPlayer1.ShowAudioControls    是否显示声音控制按钮
MediaPlayer1.ShowDisplay       是否显示数据文件的相关信息
MediaPlayer1.ShowGotoBar       是否显示Goto栏
MediaPlayer1.ShowPositionControls  是否显示位置调节按钮
MediaPlayer1.ShowStatusBar      是否显示状态栏
MediaPlayer1.ShowTracker       是否显示进度条
MediaPlayer1.FastForward       快进
MediaPlayer1.FastReverse       快退
MediaPlayer1.Rate          快进/快退速率
MediaPlayer1.AllowChangeDisplaySize 是否允许自由设置播放图象大小
MediaPlayer1.DisplaySize       设置播放图象大小
    1-MpDefaultSize         原始大小
    2-MpHalfSize           原始大小的一半
    3-MpDoubleSize          原始大小的两倍
    4-MpFullScreen          全屏
    5-MpOneSixteenthScreen      屏幕大小的1/16
    6-MpOneFourthScreen       屏幕大小的1/4
    7-MpOneHalfScreen        屏幕大小的1/2
MediaPlayer1.ClickToPlay       是否允许单击播放窗口启动Media Player
参考技术A 你们想的太复杂了吧,调整窗体ScaleWidth就行了 参考技术B 就是去掉那个滚动条是吧
请问那个滚动条是哪个控件的?

以上是关于求c++大神给说下string中的append()函数的用法的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何查看作业日志,是否有存储过程未执行,怎么操作啊?跪求大神说下操作步骤。新手求大神指点迷津。

编译android-vlc支持rtsp,是否需要添加live555?谁有详细的步骤呢?给说下,最好有编译好的源码

C++ 以POST方式向网页提交数据.有错误。。求大神解救就这点财富值了,见谅。图片是错误。

c++求大神帮我看看为啥这个程序运行不了?关于图形工厂总是出现redefinition of 'class BaseShape'

求C语言和C++大神解答,printf怎么转成cout输出语句

VB 我是菜鸟,求高手说下怎么弄··