2023,7,10
把pta10分的题目写了
大部分能自己做出来
字符型转变为整形可以在后面直接-‘0’
2023,7,11
写pta15分的题目
#include<cmath>
round(n)
//四舍五入取整
//注意用浮点型
2023,7,12
C++ 中cctype头文件的使用
头文件cctype(字符处理库)中定义了有关字符判断与处理的库函数,使用前要包含头文件:
#include <cctype>
using namespace std;
cctype头文件中的常用函数列表如下:
函数名称 返回值
isalnum() 如果参数是字母数字,即字母或者数字,函数返回true
isalpha() 如果参数是字母,函数返回true
iscntrl() 如果参数是控制字符,函数返回true
isdigit() 如果参数是数字(0-9),函数返回true
isgraph() 如果参数是除空格之外的打印字符,函数返回true
islower() 如果参数是小写字母,函数返回true
isprint() 如果参数是打印字符(包括空格),函数返回true
ispunct() 如果参数是标点符号,函数返回true
isspace() 如果参数是标准空白字符,如空格、换行符、水平或垂直制表符,函数返回true
isupper() 如果参数是大写字母,函数返回true
isxdigit() 如果参数是十六进制数字,即0-9、a-f、A-F,函数返回true
tolower() 如果参数是大写字符,返回其小写,否则返回该参数
toupper() 如果参数是小写字符,返回其大写,否则返回该参数
string a;
int m=a.length()//判断字符串的长度(int m是必须)
如何使用 stoi()
函数将字符串转换为 int
将字符串对象转换为数字 int
的一种有效方法是使用 stoi()
函数。
此方法通常用于较新版本的 C++,在 C++11 中引入。
它接受一个字符串值作为输入,并返回它的整数版本作为输出。
#include <iostream>
#include <string>
using namespace std;
int main() {
// a string variable named str
string str = "7";
//print to the console
cout << "I am a string " << str << endl;
//convert the string str variable to have an int value
//place the new value in a new variable that holds int values, named num
int num = stoi(str);
//print to the console
cout << "I am an int " << num << endl;
}
一般输入带空格的string时,如果该输入是第一次输入,用以下方法即可。
string s;
getline(cin , s);
但是当该段代码前面还有输入时,如:
string t , s;
cin>>t;
getline(cin , s);
就无法正常读入。
原因
当缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin会将其忽略并清除,但当getline()读取数据时,不会像cin>>那样忽略第一个换行符,反而会直接读取,将换行符替换为空字符’,导致后续无法输入。
解决方法
清空缓冲区
cin.ignore();
即:
string t , s;
cin>>t;
cin.ignore();
getline(cin , s);
2023,7,13
for(i = 0; i < m; ++i)//矩阵相乘
{
for(j = 0; j < q; ++j)
{
c[i][j]=0;//important
for(k = 0; k < n; ++k)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
2023,7,14
substr(size_type _Off = 0,size_type _Count = npos)
一种构造string的方法
形式 : s.substr(pos, len)
返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾