C++ 学习笔记(牛客)
字符串大小写转换(1)
void mytolower(string& s){ int len=s.size(); for(int i=0;i<len;i++){ if(s[i]>='A'&&s[i]<='Z'){ s[i]+=32;//+32转换为⼩写 //s[i]=s[i]-'A'+'a'; } } } void mytoupper(string& s){ int len=s.size(); for(int i=0;i<len;i++){ if(s[i]>='a'&&s[i]<='z'){ s[i]-=32;//+32转换为⼩写 //s[i]=s[i]-'a'+'A'; } } }
字符串大小写转换(2)运行较慢
#include <ctype.h>
a = toupper(a) b = tolower(b) //char a, b
字符串大小写转换(3)运行较慢
string s = "ABCDEFG"; transform(s.begin(),s.end(),s.begin(),::tolower);
统计字符串中某个字符的个数
int size = count(a.begin(), a.end(), b); //string a, b;
判断一个字符是否为字母
#include <ctype.h> int result = isalpha(''); //功能:如果参数是字母字符,函数返回非零值,否则返回零值。
char与string转换
C++中char类型可以自动转换成string类型,即你可以用char类型字符串直接给string类型变量赋值。但反过来是不行的,string类型不能隐式的将string类型转换成char类型,想要转换,必须显式调用c_str()函数。
string s1; const char *pc = "a character array"; s1 = pc; // ok char *str = s1; // 编译时刻类型错误 const char *str = s1.c_str(); // ok
char转int
char a='2' int b = a - '0' cout<<a-1<<' '<<b; //输出 49 2 //‘2’的ASCII为50
string中的insert()函数用法
string str="hello"; string s="Hahah"; str.insert(1,s);//在原串下标为1的字符e前插入字符串s cout<<str<<endl; string str1="hello"; char c='w'; str1.insert(4,5,c);//在原串下标为4的字符o前插入5个字符c cout<<str1<<endl;
四舍五入思路:加0.5取整
数组初始化为0
int a[100] = {0};//a[0] = 0,其余元素默认用0填充
十进制转二进制
#include <bitset> std::bitset<N> bitset2(value); // 使用二进制整数 value 初始化一个长度为 N 的 bitset
下面是 std::bitset 类型的一些常用操作:
- size() 返回 std::bitset 的长度
- count() 返回 std::bitset 中值为 1 的位的数量
- any() 返回 std::bitset 中是否存在值为 1 的位
- none() 返回 std::bitset 中是否所有位都是 0
- all() 返回 std::bitset 中是否所有位都是 1
- test(pos) 返回 std::bitset 中位于 pos 位置的值
- set(pos) 将 std::bitset 中位于 pos 位置的值设为 1
- reset(pos) 将 std::bitset 中位于 pos 位置的值设为 0
- flip(pos) 将 std::bitset 中位于 pos 位置的值取反
- to_ulong() 返回 std::bitset 转换成的无符号整数值
- to_ullong() 返回 std::bitset 转换成的无符号长整数值