欢迎光临散文网 会员登陆 & 注册

c++之string与char[]

2023-07-12 15:01 作者:开朗的小盆友yyds  | 我要投稿

字符串操作

A. Char 字符串函数

1、strcmp(s1,s2)

函数功能:比较字符串 s1 和 s2 的大小。

如果 s1 大于 s2,返回正数

如果 s1 等于 s2,返回0

如果 s1 小于 s2,返回负数

字符串的比较规则:先比较长度,长度相同则逐一按照 ASCII 的数值大小比较。

2、strncmp(const char *s1,const char *s2, const n)

函数功能:

比较字符串 s1 和 s2 的前 n 个字符的大小。

如果 s1 大于 s2,返回正数。

如果 s1 等于 s2,返回0。

如果 s1 小于 s2,返回负数。

字符串的比较规则:先比较长度,按照 ASCII 的数值大小比较。

3、strlen(const char *s1)

函数功能:

返回字符串的长度。字符串末尾的 \0 不计入总长度。

4、strlwr(char *s1) #

函数功能:

将 s1 中的大写字母转化成小写字母。

调用后,s1 的内容被改变了。

5、strupr(char *s1)

函数功能:

将 s1 中的小写字母转化成大写字母。

调用后,s1 的内容被改变了。

 

 

B. String 字符串

string – 定义

字符串在 C++ 中很重要,而基础的 char [] 形式的字符串,在使用上不是很友好。

比如:str1、str2两个字符串,则 str1 = str2 这样的写法是【错误的】。但是使用【=】符合大多数人的习惯。

所以,后来的 C++ 中定义了一种 string 类型,来专门表示字符串。

#include < iostream >

int main()

{

    std::string str1("da");  // 若使用“using namespace std;”,“std::”可不写

    std::string str2 = "dashima";

    str1 = str2;     // 【正确】

return 0;

}

string – 输入输出

依然可以使用 cin 和 cout。

cin,请注意读取的时候,会忽略开头的【空格】【制表符】【换行符】,当遇到【空格】【制表符】【换行符】则停止读取。

S1.empty()

函数说明:用于判断S1是否为一个【空字符串】。

若是空的为1,不空为0.

S2.size()

函数说明:用于判断S2字符串的【长度】。

[] ,索引符号

说明:用于【读/写】该字符串中某一位的字符,【要是超出范围会报错】。

+ 和 +=, 合并字符串

说明:用于合并两个字符串。

= ,赋值

说明:修改 string 变量的值。

S1.insert(int pos,string s2)

说明:从pos开始,插入s2.

S1.substr(int pos,int n)

说明:返回从pos起的n个字符,类型为string.

S1.erase(int pos, int n)

函数说明:删除从下标 pos 起的 n 个字符。

S1.replace(int pos, int n, string s2)

函数说明:将从下标 pos 起的 n 个字符,替换为 s2。

S1.find(string s2, int pos)

函数说明:在下标 pos 起,查找 s2 第一次出现的位置。

S1.c_str()

函数说明:返回一个与s1内容相同的 C 语言风格的字符串临时指针。

 

 

C. 题目

说明:输入字符串,找出第一个b的位置并打印。替换所有a为c。删除所有xy。输出字符串。

输入示例:Aabcxydbcxyzzaacbcd

输出示例:2 Acbcdbczzcccbcd

#include<iostream>

using namespace std;

int main(){

string str;

cin>>str;//输入

cout<<str.find("b", 0)<<” “;//删除里面的b

for(int i=0;i>=0;i++){

int index_a=str.find("a",0);//找出a

if(index_a<0)//判断是否找尽

break;

str.replace(index_a,1,"c");//替换为c

}

for(int i=0;i>=0;i++){

int index_xy=str.find("xy",0);//找出xy

if(index_xy<0)//判断是否找尽

break;

str.erase(index_xy,2);//删除

}

cout<<str<<endl;//输出

return 0;

}

 

 

 

 

 


c++之string与char[]的评论 (共 条)

分享到微博请遵守国家法律