站长查询域名,wordpress有点,网站建设采取招标的形式,网站备案主体是什么写在前面#xff1a; 这篇文章是我之前刷PAT(Basic Level)随手记下来的几个记忆点#xff0c;希望对大家有所帮助。
1.字符串和数值类型之间的转换#xff1a;
如果要将数值类型如int、double、long转换为字符串string#xff0c;可以使用to_string()函数
#includes…写在前面 这篇文章是我之前刷PAT(Basic Level)随手记下来的几个记忆点希望对大家有所帮助。
1.字符串和数值类型之间的转换
如果要将数值类型如int、double、long转换为字符串string可以使用to_string()函数
#includestring
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);如果要将string转换成int输出则使用stoi()函数
#includestring
int stoi (const string str, size_t* idx 0, int base 10);
int stoi (const wstring str, size_t* idx 0, int base 10);如果要将string转换成long int输出则使用stol()函数用法类似 如果要将string转换成long long输出则使用stoll()函数用法类似 如果要将string转换成float输出则使用stof()函数用法类似 如果要将string转换成double输出则使用stod()函数用法类似 如果要将string转换成long double输出则使用stold()函数用法类似
如果要将char转换成int输出则使用atoi()函数用法类似 如果要将string转换成char输出则使用c_str()函数如
s1.c_str1()2.字符串长度可以用strlen()函数返回在字符串中’\0’前面出现的字符个数如
#includestdio.h
#includestring.h
int main()
{char str1[] abcdef;printf(%d\n, strlen(str1));return 0;
}也可以用length()和size()函数
3.对vector v或者string v进⾏ sort 排序
sort(v.begin(), v.end(), cmp1);对数组a进⾏sort排序
sort(a, a n, cmp1);其中若要设置从大到小排序则有
bool cmp(int a,int b){return ab;}4.记录重复的数如果碰见要记录递推过程中遇到的每一个数情况类似PAT乙级1005可以用vector来读取及处理数据另设一组数组来标记数据
5.判断素数的程序对于数字ai从2到根号a如果a能够被其中一个i整除说明i不是素数return false否则说明a是素数return true
bool isprime(int a)
{for (int i 2; i * i a; i)if (a % i 0) return false;return true;
}6.倒置数组或者vector中的元素可以用reverse()函数
#include algorithm
reverse(str.begin(),str.end()) //反转字符串
reverse(vector.begin(),vector.end()) //反转向量
reverse(a,astrlen(a)) //反转数组7.倒置数组操作数组长度为n要想把数组循环右移m位只需要先将整个数组a倒置再将数组前m位倒置最后将数组后n-m位倒置即可完成循环右移m位
8.将一串字符颠倒输出可以用stack
将输入的每个单词或者字符s都分别v.push(s)压入栈中再输出栈顶v.top()然后将栈顶元素弹出v.pop()直到栈空为止
#includeiostream
#includestack
using namespace std;int main()
{string s;stackstring v;while(cins) v.push(s);coutv.top();v.pop();while(!v.empty()){cout v.top();v.pop();}return 0;
}9.一元多项式求导
flag用来判断是否已经有过输出当b!0时因为给出的是所有非零项系数所以必定会有输出先判断flag是否为1如果为1表示已经有过输出那么在前面要先输出一个空格输出 a * b 和 b – 1然后将flag标记为1表示已经有过输出最后判断当没有输出并且b0的时候输出“0 0”
10.三目运算符b?x:y
先计算条件b然后进行判断。如果b的值为true计算x的值运算结果为x的值;否则计算y的值运算结果为y的值。一个条件表达式绝不会既计算x又计算y。 条件运算符是右结合的也就是说从右向左分组计算。例如a ? b : c ? d : e将按a ? b : (c ? d : e)执行。加括号是为了方便阅读不加也是一样的。
11.分类存储数据可以用vector同一类数据存储在同一个vector[i]中读取时用vector[i][j]
12.按照规定格式输入如果输入格式中数据与数据之间有其他字符可以用scanf语句
13.输出数字空余数位用0补齐如printf(%02d,i)意思是用0补齐一共2位可以用其他数字代替。
14.按照规定格式输出如果输出格式中数据与数据之间有其他字符可以用printf语句如printf(%02d:%02d, m, pos);
15.判断某个字符型是否为数字或字母
#includecctype
isdigit(char c or string c);
isalpha(char c or string c);16.substr 只有两种⽤法
string s2 s.substr(4); // 表示从下标4开始⼀直到结束
string s3 s.substr(5, 3); // 表示从下标5开始3个字符17.类似日期的字符串比较如果要比较如YYYY/MM/DD这样形式的日期可以直接比较字符串
cinnamebirth;
if(birth1814/09/06birth2014/09/06)
{cnt;if(birthmaxbirth){maxbirthbirth;maxnamename;}if(birthminbirth){minbirthbirth;minnamename;}
}18.find函数
第一种algorithm头文件的find。 使用方法find(beginendvalue)一般用 容器.end()来判断查找成功与否。左闭右开。 begin是容器或者数组的起始地址容器.begin或者数组名也可以是任意地址不非法即可 end是结束查找的地址容器.end()或者数组名长度 value是想要查找的字符或者字符串
查找成功将返回迭代器容器或者指针数组否则返回end()
#includeiostream
#includealgorithm
#includevector
using namespace std;
int main()
{vectorint v;for(int i0;i5;i){v.push_back(i);}if(find(v.begin(),v.end(),4)!v.end()){ printf(找到的下标为%d\n,find(v.begin(),v.end(),4)-v.begin()); //获取元素的下标 }else{printf(该元素不存在\n);}return 0;
}第二种string自带的find可查找指定字符串和指定字符。 使用方法如在string1中查找string2string1.find(string2)返回值为string2第一次在string1中出现的位置。 若希望在特定位置开始查找可使用 string1.find(string2location); 如果找不到则返回值为string::npos即对于string通过a.find(val)string::npos来做判断是否查找成功
#includeiostream
#includestring
using namespace std;
int main()
{string s1,s2;s1 hello world;s2 world;if(s1.find(s2)!string::npos){ //查找字符串 printf(s2在s1中的起始下标为%d\n,s1.find(s2)); }else{printf(s1中不存在s2字符串); } char c e;if(s1.find(c)!string::npos){ //查找字符 printf(字符c在s1中的起始下标为%d\n,s1.find(c)); }else{printf(s1中不存在字符c); } return 0;
}19.string::nposstring::npos是一个静态成员常量表示size_t的最大值Maximum value for size_t。该值表示“直到字符串结尾”作为返回值它通常被用作表明没有匹配。
20.大小写字母转换小写换大写用toupper()大写换小写用tolower()头文件为 cctype 。
21.四舍五入 int t N / 2 N % 2;22.数组下标C的数组下标可以是字符存储的是ASCII码的值
23.截取字符串
string s 0123456789;
string sub1 s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾sub1 56789
string sub2 s.substr(5, 3); //从下标为5开始截取长度为3位sub2 56724.把字符串中的字母转化为数字
将字符减去’A’再加1此时返回的是该字母在1-26里的序号
s[i](s[i]-A1);25.把字符串中的数字转化为数字
将字符减去’0’即可
26.取整
floor向下取整 ceil向上取整 round四舍五入
#include iostream
#include math.h
using namespace std;int main()
{coutfloor(4.4)endl;//4coutfloor(4.5)endl;//4coutceil(4.4)endl;//5coutceil(4.5)endl;//5coutround(4.4)endl;//4coutround(4.5)endl;//5double a;//当a是正数也可以while(cina)cout(int)(a0.5)endl;return 0;
}