C++部分字符函数总结

一:字符数组与字符串。

char占一个字节的空间,而char类型的数组却不是一个字符串,因为它没有字符串的结束标志 ‘\0’ ;只有在其末尾添加 ’\0’ 才可以称之为字符串。
字符数组 char str[3] = {‘s’ , ‘t’ ,‘r’} ;
字符串 char str[4] = {‘s’ , ‘t’ ,‘r’ , ‘\0’} ;

二:字符串的输入。

cin在输入字符串 “string str” 的时候,遇到空格就会结束输入,也就是只能读取到 string ,而想要完全读入字符串的我们可以运用 cin.get(str,10) 来将整个字符串输入进来;另外,cin.get 的结束标志是 ‘\n’ ,也就是换行。

三:字符串的初始化。

在初学编程的时候,会偷一点懒嘛,很正常,就像这样 char str[]={‘s’ , ‘t’ ,‘r’ ,‘i’ , ‘n’ ,‘g’, 0 , ‘s’ , ‘t’ , ‘r’} ;因为我们知道,空字符的ASCII码是0,所以在这偷个懒,其实如果执行 cout<<str; 就会发现输出的是 string ;为什么呢? 原来我们只知其一不知其二,空字符的ASCII码是0,同样,ASCII码值为0的字符也是NULL字符,到这就明白了,原来如此。而想要全部输出的话,只需要将 ”0“ 变为 ” ’ ’ “;再进行输出就可以了。
char str[]={‘s’ , ‘t’ ,‘r’ ,‘i’ , ‘n’ ,‘g’, 0 , ‘s’ , ‘t’ , ‘r’} 这一步其实可以写成
char str[]={“string str”};这里是为了讲解而进行逐个字符的写。

四:字符串长度。

strlen() 函数返回的是字符串结束标志 ‘\0’ 之前的字符串长度,而sizeof()则返回数组的长度,也就是该数组共有多少个元素。
例如:char str[12] ={ “hello world”} strlen 返回11,而sizeof 则为12。

string类

一:string类比较函数


#include<bits/stdc++.h>
using namespace std;
typedef long long ll ;
int main()
{
    string str1="hello world" ;
    string str2="hello new world" ;
    char str_1[]="hello world" ;
    char str_2[]="hello new world" ;
    if(str1 == str2)
        cout<<"YES"<<endl;
    else
        cout<<"NO"<<endl;
        
    if(strcmp(str_1,str_2) >0 )
        cout<<"1"<<endl;
    else
        cout<<"-1"<<endl;
}


string类允许运用”==“进行比较,而char类型需要运用比较函数strcmp()。

二:string型字符串赋值。

C语言中有拷贝函数 strcpy(str1,str2) ,一个需要注意的点呢是必须保证 str1 足够大,以便于容纳str2 ,当然啦 ‘\0’ 也会别拷贝过去。
C++里的string类则可以通过 ” str1=str2 “ 来简单赋值。
assign()函数可以将某一个字符赋值过去,

str1.assign(str2 , 3 , 1) // 3 表示从str2中的第三个元素开始取 1 个字符赋值给str1
						  //string类具有自动调节字符串大小的功能,会将多余的字符删除
					

三:string型字符串的合并

char ch1[]={"love"} ,ch2[]={" LY"};
strcat(ch1,ch2);     //连接ch1,ch2,注意ch1的内存必须能够容纳两个字符串的长度
                     //如果溢出的话,会导致系统产生无法确定的错误
string   str1,str2;
//如果储存再str1中的话
str1 = str1 + str2 ;


//部分复制函数
//  strncat()   函数可以实现对char型字符串的部分合并或者说是复制
strncat(ch1 , ch2 ,3) ; //可以将ch2中的前3个字符复制连接给ch1最后一个字符后
str1.append(str2 , 2 ,3 ) ;// 2 呢是下标,表示从str2中的下标为2那个字符开始复制
						   //3呢是复制字符的个数


四:string长度

str1.size() ;         //size呢,是string类的长度计算函数,和sizeof有区别
strlen(str1.c_str()) ;//因为strlen不支持对象,我们需要给它变一下再计算
					  //str1.c_str()将自身变成一个带'\0'的字符串数组,然后进行strlen计算
					  //size函数可以兼容STL 。
str1.length() ;       //同样可以实现计算长度的功能。

个人喜好用C++的字符串函数,嘻嘻

五:string型字符串的替换

//char 类型的字符串可以用 strncpy()
strncpy(ch1 ,ch2 , 3) ; //ch1指要被替换的字符串,ch2是源字符串,也是将要从ch2中找字符去替换ch1的字符,3是替换的字符个数
//string类型的字符串


猜你喜欢

转载自blog.csdn.net/m0_43382549/article/details/87613069
今日推荐