C++ .1
C++(图片后面慢慢补,本地word找不到了,因为不小心分区覆盖了。。用软件找回需要几百块。。想想不值得。。。)
一、string类型变量构造赋值方法
1、构造
(2) 定义一个空白变量S1
(3) 定义一个新变量S2,内容完全等于S0
(4) 定义一个新变量S3,内容是S0从第八个字符开始的三个字符
(5) 定义一个新变量S4,用括号赋值(和(1)作用效果一样,只不过过使用()来赋)
(6) 定义一个新变量S5,内容是””里面的前12个字符
(7) 定义一个新变量S6,内容是n=10个相同字符’x’。
总体展示:
2、访问
因为string存在[ ]用法,所以可以用访问数组元素的方法来访问字符串。
例如string A = “ab cd ef ghijk.”
那么A[0]=’a’ , A[1]=’b’ , A[2]=’ ‘ .
上图就是遍历输出字符串str,输出结果就是“hello world”。后面又输出数组的下标为6的元素,即第七个元素‘w’。
3、插入
图示用法:
字符串变量名.insert(位置,内容(或者定义好的字符串变量地址(名字)))。
4、删除
Str4内容:to be or not to be that is a question
只有两种:
第一种:从某个下标(图中是19)开始及其后面全部丢弃。
第二种:从某个下标(图中是0)开始的n个字符(图中是9)删掉。
5、清空
6、运算
(1)加法(字符串的拼接)
(2)比较(用ASCII码从第一个字符开始进行字典比较)
7、常用函数
1、 变量名.size()返回字符串长度(.size())
2、在字符串中寻找子串并返回子串第一个字符下标(.find())
两张图中:第二行加的10都是指定从哪个位置开始往后找
3、返回子串(.substr())
分别是:
从13下标开始返回后面的所有字符形成的子串;
从13下标开始返回后面的3个字符形成的子串。
4、头文件:
(1)String.h = cstring ,都是C语言里的
(2)string是C++里的针对字符串这个类的,直接输入输出的话只能用cin,cout。不能用scanf,printf因为这两个是C的,无法用于C++特有的string类的输入输出必须改造一下字符串变量才行。
string a; scanf("%s",a); printf("%s",a);这样不行,会报错。那么怎么解决这个问题呢?
很简单,只需要在变量后加一个“.c_str()”就行了。
具体代码段如下:
string a; scanf("%s",a.c_str()); printf("%s",a.c_str());
这是因为通过string类的c_str()函数能够把string对象转换成c中的字符串的样式。
☆C/C++关于字符串输入输出空格问题总结
(1)cin
#include<iostream> #include<cstring> using namespace std; int main() { char a[100]; cin>>a; cout<<a<<endl; return 0; }
当输入:hello world 时,遇到回车键输出:hello;
(2)gets()
#include<iostream> #include<cstdio> using namespace std; int main() { char a[100]; gets(a); cout<<a<<endl; return 0; }
当输入:hello world 时,遇到回车键输出:hello world;
(3)cin.get()
#include<iostream> using namespace std; int main() { char a[100]; cin.get(a,100); cout<<a<<endl; return 0; }
当输入:hello world 时,遇到回车键输出:hello world;
(4)getline()
#include<iostream> #include<string> using namespace std; int main() { string a; getline(cin,a); cout<<a<<endl; return 0; }
当输入:hello world 时,遇到回车键输出:hello world;
(5)cin.getline()
#include<iostream> using namespace std; int main() { char a[100]; cin.getline(a,100); cout<<a<<endl; return 0; }
当输入:hello world 时,遇到回车键输出:hello world;
#include <iostream> using namespace std; int main() { char a[20]; scanf("%s",a); puts(a); return 0; }
当输入:hello world 时,遇到回车键输出:hello;
(7)让scanf可以接收空格,遇到回车键结束(有时与getchar()配合使用);
#include <iostream> using namespace std; int main() { char a[100]; scanf("%[^\n]",a); puts(a); return 0; }
当输入:hello world 时,遇到回车键输出:hello world;
(7)-2、要加getchar() 的;
#include <iostream> using namespace std; int main() { int n; char a[100]; cin>>n; getchar();//吸收换行符,一定要加 for(int i=0;i<n;i++) scanf("%[^\n]",a); puts(a); return 0; }
输入:11
hello world
输出:hello world;
(PS)上述原文:https://blog.csdn.net/qq_41555192/article/details/82532458
#include<string>
#include<iostream>
using namespace std;