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 转换成的无符号长整数值

 

posted @ 2022-10-14 14:18  HaijianYang  阅读(24)  评论(0编辑  收藏  举报