一些C++的字符函数
2016-09-05 08:05
288 查看
1,去除字符的\r\n
2,分割字符串
3,转换长整数
4,空格的检验
关于将字符转换为整形:
2,分割字符串
3,转换长整数
4,空格的检验
关于将字符转换为整形:
NAME atoi, atol, atoll, atoq - convert a string to an integer SYNOPSIS #include <stdlib.h> int atoi(const char *nptr); long atol(const char *nptr); long long atoll(const char *nptr); long long atoq(const char *nptr);
void str_trim_crlf(char *str) //去除字符的\r\n { char *p =&str[strlen(str) - 1]; //关于strlen其实是不计算'\0'的,是自己编写的函数,通常与sizeof进行区分,sizeof是计算所有给出的空间 while(*p == '\r' || *p == '\n') *p-- = '\0'; } void str_split(const char*str, char *left, char *right, char c) //将字符分成两部分,以c字符为分隔符 { char *p = strchr(str,c); //查找第一个c字符,找不到返回NULL //查找字符串str中首次出现字符c的位置 if(p == NULL) strcpy(left, str);//字符数组的拷贝 else{ strncpy(left, str, p-str); 将一定数目的字符拷贝过来 strcpy(right, p+1);//同样字符的拷贝,直到碰见'\0' } } int str_all_space(const char *str) //查看相应的字符串中是不是有空格 { //我们应该明白的是:传过来的字符数组都可以当做变量来对待,实现++ while(*str) { if(!isspace(*str)) //isspace(*str)检查相应的字符是不是为空格 return 0; str++; } return 1; } void str_upper(char *str) //将相应的字符串中的所有字符转换为大写的!!! { while(*str) { *str = toupper(*str);//将相应的字符转换为大写 str++; } } long long str_to_longlong(const char *str) //将相应的字符串,转换为长整形 { /* long long result = 0; long long mult = 1; unsigned int len = strlen(str); unsigned int i; if(len > 15) return 0; for(i = 0; i < len; i++) { char ch = str[len - (i + 1)]; long long val; if(ch < '0' || ch > '9') return 0; val = ch - '0'; val *= mult; result += val; mult *= 10; } */ long long result = 0; long long mult = 1; unsigned int len = strlen(str); int i; //如果这里的是unsigned int,那么这里就有可能出现段错误,或者核心转储,因为此刻i不可能为负值 if(len > 15) return 0; for(i = len -1; i >= 0; i--) { char ch = str[i]; long long val; if(ch < '0' || ch > '9') return 0; val = ch - '0'; val *= mult; result += val; mult *= 10; } return result; // return atoll(str); } unsigned int str_octal_to_uint(const char *str) 将八进制字符数转换为整形 { unsigned int result = 0; int seen_non_zero_digit = 0; while(*str) { int digit = *str; if(!isdigit(digit) || digit > '7') //isdigit检查参数是否为阿拉伯数字0到9 break; if(digit != '0') seen_non_zero_digit = 1; if(seen_non_zero_digit) { result <<= 3; result += (digit - '0'); } str++; } return result; }
相关文章推荐
- str_replace() 函数使用一个字符串替换字符串中的另一些字符
- 一些读取字符函数小结(getchar getch getche)
- note:获取字符输入的一些函数
- [学习记录]一些简单的字符截取函数
- StringUtils的一些控制空白字符的函数
- 宽字符(WideCharacterString)和窄字符(MultiByteCharacterString)对应的一些函数(陆续更新)
- 一些WinAPI 处理 字符的函数和连接(GetACP和SetThreadLocale最重要,还有SetConsoleCP)
- string 类 判断字符的一些函数
- 关于字符函数的一些应用总结
- 一些常用的字符操作函数
- C/C++ 中的一些字符操作函数(不是std::string)
- 关于函数和字符指针的一些看法。
- C++ 在函数中声明string和字符数组的一些特性
- Linux 驱动开发-字符设备驱动一些函数用法
- 字符数组的定义、初始化及引用以及一些常用的字符串处理函数
- 写了一些java的字符处理函数,可能对大家有些用
- 关于指针和函数和字符数组的一些小结
- Android不支持宽字符 (wchar_t*,及有关宽字符的一些函数运行结果不正确)(wchar_t, wcslen, wcstombs, std::wstring)
- htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体
- 一些字符函数的实现。