首页 > 其他分享 >字符串相关操作

字符串相关操作

时间:2023-06-15 17:23:58浏览次数:32  
标签:ch string CString char str 相关 字符串 操作

1.比较字符串

  strcmp(testStr,  "no") == 0

2. 字符串大小写

  char * strlwr(char * s)将s 中的字母都变成小写

  char * strupr(char * s)将s 中的字母都变成大写

  string testStr = “just For test”;            

  transform(testStr.begin(),testStr.end(),testStr.begin(),::tolower);

 3. CString和char[]互转

  只有以NULL结尾的char[]才能强制转换为CString,即可以直接等于,否则需要通过Format函数

  char charArray[]="this C++";

  CString res;

  res.Format("%s", charArray); 

4. CString和string互转

  CString转string

  CString strMfc = "test";

  std::string strStr = strMfc.GetBuffer(0);

  string转CString

  CString strMfc;

  string strStr = "test";

  strMfc = strStr.c_str();

5. string和char数组

  string转char数组

  char buf[10];

  string str("ABCDEFG");

  length = str.copy(buf, 9);

  buf[length] = '\0';

  或者

  strcpy(buf, str.c_str());

  strncpy(buf, str.c_str(), 10);

  char数组转string

  char ch [] = "ABCDEFG";

  string str(ch);  也可string str = ch;

  或者

  char ch [] = "ABCDEFG";

  string str;

  str = ch;//在原有基础上添加可以用str += ch;

 6. 填充/提取

  char  timeInfo[256];

  memset(timeInfo, 0, sizeof(timeInfo));

  sprintf(timeInfo, "%04d/%02d/%02d %02d:%02d:%02d ", year,mon,day, hour, min, sec);   

  1)sscanf("zhoue3456 ", "%4s", str); //取指定长度的字符串       

          printf("str=%s\n", str);   //str="zhou";

  2)sscanf("zhou456 hedf", "%[^ ]", str); //取到指定字符为止的字符串,取遇到空格为止字符串    

          printf("str=%s\n", str);  //str=zhou456;

  3)sscanf("654321abcdedfABCDEF", "%[1-9a-z]", str); //取仅包含指定字符集的字符串

          printf("str=%s\n", str);  //str=654321abcded,只取数字和小写字符

  4)sscanf("BCDEF123456abcdedf", "%[^a-z]", str); //取到指定字符集为止的字符串       

           printf("str=%s\n", str);  //  str=BCDEF123456, 取遇到大写字母为止的字符串

  5)int a,b,c;

          sscanf("2015.04.05", "%d.%d.%d", &a,&b,&c); //取需要的字符串   

          printf("a=%d,b=%d,c=%d",a,b,c);  //  a=2015,b=4,c=5

截取函数实现

void GetSubStrings(const string& totalStr, const string& delim, vector<string>& res)

{

    res.clear();

    if (totalStr == "")

    {

        return ;

    } 

    char *strArray = new char[totalStr.length() + 1];

    strcpy(strArray, totalStr.c_str()); 

    char *delimArray = new char[delim.length() + 1];

    strcpy(delimArray, delim.c_str()); 

    char* curChar = strtok(strArray, delimArray);

    while (curChar)

    {

        string curStr = curChar;

        res.push_back(curStr);

        curChar = strtok(NULL, delimArray);

    }

}

标签:ch,string,CString,char,str,相关,字符串,操作
From: https://www.cnblogs.com/xiaoxiaoshi/p/17483478.html

相关文章

  • 操作excel
    fromopenpyxlimportWorkbookfromopenpyxlimportload_workbookwb=load_workbook(u"projects-shanghai.xlsx")ws=wb.worksheets[0]maxRow=ws.max_row#获取总行数print('#excleRowSum:'+str(maxRow))foriinrange(2,maxRow+1):if......
  • leetcode735行星碰撞vector模拟栈操作
    vector的基本操作:vector<int>v;v.back();//获取尾部数据v.front();//获取首部数据v.push_back(3);//在尾部加入数据3v.pop_back();//弹出尾部数据首先只有前一个行星向右走,后一个行星向左走才可能相撞。也就是一正一负的组合使用一个变量aliva记录当前行星是否会被销毁,......
  • Spring之SpEL表达式操作示例解析
    目录1SpEL1.1简介1.2简单示例2深入示例2.1运算2.1.1算术运算2.1.2逻辑运算2.1.3比较运算2.1.4使用字符代替符号2.1.5使用正则表达式2.1.6使用instanceof2.1.7三目运算(if..else..)2.1.8表达式模板TemplateParserContext2.2字符串2.2.1操作2.2.2调用字符串方法2.3使......
  • 力扣上任务调度相关的算法
    目录应用应用1:Leetcode1834.单线程CPU题目分析代码实现应用2:Leetcode621.任务调度器题目分析代码实现应用应用1:Leetcode1834.单线程CPU题目1834.单线程CPU给你一个二维数组tasks,用于表示n项从0到n-1编号的任务。其中\(tasks[i]=[enqueueTime_i,proc......
  • 本地下载 web file操作
    functiondownload(){constlink=document.createElement('a')link.href=window.location.origin+`/static/doc/${this.type}.docx`+'?auth='+getToken()constfileName='20230615.docx'link.download=fil......
  • 操作系统项目重启中
    MarayisRestartingstepbystep。快有感觉了。上午在国家光电实验室见了庞、阳两位老师,谈了关于Maray的事情,计划把它变成华中科技大学操作系统课设项目。庞老师本是可以休息了,对于这个项目却表现出极大热情,决定再度出山。这两周我得针对已有代码写注释,写文档,然后老师们看看,由他......
  • git操作基本命令
    拉取代码gitclonehttp://...创建本地分支gitbranchfeatuer切换本地分支gitcheckoutfeatuer拉取最新分支代码gitpullorigindevgitadd.gitcommit-m"aaa"提交本地featuer代码到dev分支gitpushoriginfeatuer:dev或者创建本地分支gitbranchdev切换本地分支git......
  • 字符串转换整数 (atoi)
    字符串转换整数(atoi)题目:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一......
  • 字符串中的第一个唯一字符
    字符串中的第一个唯一字符题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1。示例:s=“leetcode”返回0s=“loveleetcode”返回2解题思路:先遍历一遍字符串,记录所有字符的出现次数,再遍历一次字符串查找该字符的出现次数classSolution{......
  • 比较含退格的字符串
    比较含退格的字符串题目:给定S和T两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。#代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例1:输入:S=“ab#c”,T=“ad#c”输出:true解释:S和T都会变成“ac”。示例2:输入:S=“......