C++常用的字符串处理函数-全

这是自己用stl实现的一些字符串处理函数和常用的字符串处理技巧,经验正基本无误,可直接使用,若有问题,可相应列出

包括:split

string to int

int to string

join

#include <string.h>
#include <vector>
#include <string>
//字符串分割函数,类似python的split
vector<string> split(char s[],const char *delim)
{
    char *token = strtok(s,delim);
    vector<string> vstr;
    while(token!=NULL){
        string stmp = token;
        vstr.push_back(stmp);
        token = strtok(NULL,delim);
    }
    return vstr;
}
//若用string调用如下
 string s="192.168",sm=".";
 vector<string> ss=split(const_cast<char *>(s.c_str()),sm.data());

//参数都为string版
vector<string> split(string s,string delim)
{

    char *ss=const_cast<char *>(s.c_str());
    const char *ddelim= delim.data();
    char *token = strtok(ss,ddelim);
    vector<string> vstr;
    while(token!=NULL){
        string stmp = token;
        vstr.push_back(stmp);
        token = strtok(NULL,ddelim);
    }
    return vstr;
}
//以下给出类似于Python 中join功能的实现,后续不断完善
string join(const vector<string> &vs,const string &s)
{
    int n=vs.size();
    string restr;
    for(int i=0;i<n-1;++i)restr=restr+vs[i]+s;
    restr +=vs[n-1];
    return restr;
}
//char *或vector<char>转string

vector<char> vs;
vs.push_back(char);
vs.push_back(‘\0‘); //特别注意char* 转
string s;
s=string(vs.data());
char a[100]="6666666";
s=string(a);

//列出自己实现的string to int( atoi)
int myAtoi(string str) {
        if(str=="")return 0;
        if(str.size()==1)
        {
            if(str[0]>‘9‘||str[0]<‘0‘)return 0;
        }
        int beg=0;
        while(str[beg]==‘ ‘)beg++;//越过前面的空字符
        if((str[beg]>‘9‘||str[beg]<‘0‘)&&str[beg]!=‘-‘&&str[beg]!=‘+‘)return 0;//第一个非空字符非法
        int sign=(str[beg]==‘-‘)?-1:1; //判断符号
        int j=(str[beg]==‘+‘||str[beg]==‘-‘)?beg+1:beg;//判定何时开始计算
        int res=0;
        for(int i=j;i<str.size();++i)
        {
            if(str[i]>‘9‘||str[i]<‘0‘)break;//遇到非数字即不看后面的内容
            res=res*10+(str[i]-‘0‘);
        }
        return res*sign;
}
//列出自己实现的unsigned int转string,无bug
string itostring(unsigned int a)
{
    if(a==0)return "0";
    vector<char> vc;
    while(a){
        unsigned int tmp = a%10;
        vc.push_back(tmp+‘0‘);
        a=a/10;
    }
    int n=vc.size();
    string s(n,‘0‘);
    for(int i=n-1;i>=0;--i)s[n-1-i]=vc[i];
    return s;
}
//atoi 或者 itoa  (int to string)int atoi(const char *nptr);
char*itoa(int value,char*string,int radix);
char *strtok(char s[], const char *delim);
//strod字符串转浮点
string = "3.1415926 This stopped it";
x = strtod(string, &stopstring);
printf("string = %s\n", string);
printf("strtod = %f\n", x);
printf("Stopped scan at: %s\n", stopstring);
string = 3.1415926 This stopped it
strtod = 3.141593
Stopped scan at:  This stopped it
string = -1011 This stopped it

1. const char* 和string 转换

(1) const char*转换为 string,直接赋值即可。

     EX: const char* tmp = "tsinghua".

            string s = tmp;

(2) string转换为const char*,利用c_str()或者data()

    EX:  string s = "tsinghua";

           const char*tmp = s.c_str();

           const char *tmp = s.data();

2. char*和const char*之间的转换

(1) const char*转化为char*,利用const_cast<char*>

     EX: const char* tmp = "tsinghua";

             char* p = const_cast<char*>(tmp);

(2) char*转化为const char*,直接赋值即可。

     char* p = "tsinghua".

     const char* tmp = p;

3. char*和string之间的转换

  有了1和2的基础,char*和string转化就很简单了。

(1)char*转化为string,直接赋值即可。

     EX: char* p = "tsinghua".

            string str = p;

(2)string转化为char*,走两步,先是string->const char*,然后是const char*->char*

     EX:  string str = "tsinghua";

             char* p = const_cast<char*>(str.c_str()):
时间: 2024-11-06 03:56:28

C++常用的字符串处理函数-全的相关文章

LoadRunner中常用的字符串操作函数

LoadRunner中常用的字符串操作函数有:                strcpy(destination_string, source_string);               strcat(string_that_gets_appended, string_that_is_appended);51Testing软件测试网:J3~c:c[(wR%A2l               atoi(string_to_convert_to_int); //returns the integ

PHP中常用的字符串格式化函数总结

注意:在PHP中提供的字符串函数处理的字符串,大部分都不是在原字符串上修改,而是返回一个格式化后的新字符串. 一.取出空格和字符串填补函数 空格也是一个有效的字符,在字符串中也会占据一个位置.用户在表单输入数据时,经常在无意中会多输入一些无意义的空格.因此PHP脚本在接收到通过表单处理过来的数据时,首先处理的就是字符串中多余的空格,或者其他一些没有意义的符号.在PHP中可以通过ltrim().rtrim()和trim()函数来完成这项工作.这三个函数的语法格式相同,但作用有所不同.他们的语法格式

PHP开发中常用的字符串操作函数

1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行定义,这样做是比较有好处的. 2,替换字符串 在PHP这门语言中,提供了一个名字叫做substr_replace()的函数,该函数的作用可以快速的完成扫描和编辑文本内容较多的字符串替换功能.他的语法格式: mixed substr_replace(mixed $string,string $repl

ASP.NET中常用的字符串分割函数

asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我要根据[111cn.net]分割的话 代码如下 复制代码 string[] arrstr2 = str.Replace("[111cn.net]", "$").Split('$'); 好了看其它方法最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个

C/C++中常用的字符串处理函数和内存字符串函数

一.            字符处理函数 1.        字符处理函数:<ctype.h> int isdigit(int ch) ;//是否为数字,即ch是否是0-9中的字符 int isxdigit(int ch) ;//是否为十六进制数字,即ch是否是0-9 a-z A-Z 中的字符 int isalpha(int ch) ;//是否为字母 int isalnum(int ch) ;//是否为字母或数字 int islower(int ch) ;//是否为小写字母 int isupp

php常用的字符串处理函数:

1查找字符位置函数: strpos($str,$seach,[int]);查找search在$str中的第一次位置从int开始: stripos($str,$seach,[int]);函数返回字符串在另一个字符串中第一次出现的位置.该函数对大小写不敏感 strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int开始 strripos($str,search,[int]):同上,该函数对大小写不敏感 2.提取子字符串的函数 substr($str

VC++编程中常用的字符串转换函数

VC++编程中经常遇到不同编码编码的字符串之间需要转换的情况,以下简单提供几个不同编码字符串之间的转换函数: ANSI 字符串和Unicode字符串之间的转换 //Convert wide char string to ANSI string BOOL WCharToMByte(LPCWSTR lpcwszStr,Std::string &str) { DWORD dwMinSize=0; LPSTR lpszStr=NULL; dwMinSize= WideCharToMultiByte(CP

php中常用的字符串格式化函数

ltrim():从字符串左删除空格或其他预定义字符串 rtrim():从字符串的末端开始删除空白字符串或其它预定义字符 trim():从字符串的两端删除空白字符和其他预定字符 str_pad():把字符串填充为新的长度 strtolower():把字符串转换为小写 strtoupper():把字符串转换为大写 ucfirst():把字符串中的首字符转为大写 nl2br():在字符串的每个新行之前插入HTML换行符 htmlentities():把字符转换为HTML实体 htmlspecialch

常用的字符串处理函数实现(不调用库函数)

描述:C语言中对于字符串类型并未定义,但存在许多有关字符串的库函数(如:strstr(在原串中匹配子串),strcpy(将原串内容拷贝到目标串中),strcmp(比较两个字符串的内容),strcat(连接两个字符串,亦为字符串的追加),strlen(求取字符串的长度)....),我们可以自己编写程序实现以上功能的函数,而不调用库函数,,,再对照库函数进行学习,有利于提高自身的编程能力. //1.strcat函数(连接两个字符串,亦为字符串的追加) #include<stdio.h> #incl