linux C++字符串 //去除\r\n //字符串分割 /字符串转化为大写格式 //将字符串转换为long long //将字符串(八进制)转化为无符串整型

本文主要是介绍linux C++字符串 //去除\r\n //字符串分割 /字符串转化为大写格式 //将字符串转换为long long //将字符串(八进制)转化为无符串整型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <unistd.h> //unix环境编程所需要的头文件
#include <sys/types.h> //一些类型
#include <pwd.h>
#include <shadow.h>
#include <crypt.h>
#include <fcntl.h> //fcntl的头文件
#include <errno.h>//出错的处理
#include <signal.h>
#include <sys/socket.h>//套接字编程
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>  //gethostname的头文件
#include <linux/capability.h>
#include <sys/syscall.h>
#include <sys/sendfile.h>#include <net/if.h>
#include<sys/ioctl.h>
#include <time.h>
#include <sys/stat.h>
#include <dirent.h>
#include <sys/time.h>#include <stdlib.h> //标准C编程所需要的头文件
#include <stdio.h>
#include <string.h>
#include <ctype.h>

str.h

#ifndef _STR_H_
#define _STR_H_void str_trim_crlf(char *str);	//去除\r\n
void str_split(const char *str , char *left, char *right, char c);//字符串分割
int str_all_space(const char *str);//判断是否全是空白字符
void str_upper(char *str);//字符串转化为大写格式
long long str_to_longlong(const char *str);//将字符串转换为long long
unsigned int str_octal_to_uint(const char *str);//将字符串(八进制)转化为无符串整型#endif /* _STR_H_ */

#include "str.h"
#include "common.h"void str_trim_crlf(char *str) //去除\r\n
{char *p = &str[strlen(str)-1];while (*p == '\r' || *p == '\n')*p-- = '\0';}void str_split(const char *str , char *left, char *right, char c)//字符串分割
{char *p = strchr(str, c);//找出str中第一次出现字符c的位置,也就是空格的位置 返回指向该位置的指针,如找不到,则返回空指针if (p == NULL)//说明客户端传过来的这个命令没有参数strcpy(left, str);//把str的内容拷贝到left中else{//如果找到分割字符串 也就是空格,把空格前面的拷贝到left中,后面的拷贝到right中strncpy(left, str, p-str);// p-str是两个指针相减 他们的意义表示两个指针指向的内存位置之间相隔多少个元素strcpy(right, p+1);//把str中前(p-str)个字符拷贝到left中}
}int str_all_space(const char *str)//判断是否全是空白字符
{while (*str){if (!isspace(*str)) //检查参数str是否为全空格字符,也就是判断是否为空格(' ')、 若参数str为空格字符,则返回TRUEreturn 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
{//return atoll(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;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;
}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(C)函数判断字符串是否为数字 当c为数字0-9时,返回非零值,否则返回零break;if (digit != '0')//发现的非零的数字seen_non_zero_digit = 1;if (seen_non_zero_digit){result <<= 3;//左移三位, 就是乘以8result += (digit - '0');}str++;}return result;
}



这篇关于linux C++字符串 //去除\r\n //字符串分割 /字符串转化为大写格式 //将字符串转换为long long //将字符串(八进制)转化为无符串整型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062354

相关文章

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Java文件与Base64之间的转化方式

《Java文件与Base64之间的转化方式》这篇文章介绍了如何使用Java将文件(如图片、视频)转换为Base64编码,以及如何将Base64编码转换回文件,通过提供具体的工具类实现,作者希望帮助读者... 目录Java文件与Base64之间的转化1、文件转Base64工具类2、Base64转文件工具类3、

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

如何将二进制文件流转化为MockMultipartFile文件

《如何将二进制文件流转化为MockMultipartFile文件》文章主要介绍了如何使用Spring框架中的MockMultipartFile类来模拟文件上传,并处理上传逻辑,包括获取二进制文件流、创... 目录一、名词解释及业务解释1.具体业务流程2.转换对象解释1. MockMultipartFile2

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法