相关文章推荐
乐观的生姜  ·  C++ ...·  2 周前    · 
爽快的镜子  ·  Oracle日期时间操作大全 - ...·  20 小时前    · 

char转换为string 固定长度的char数组转换为string

使用socket编程时候,需要将受到的字符串数组转换为string,但是转换后的字符串总会附加一些,转义字符。

直接上code

char[256] m_cbegin; //char数组
string  m_strbegin; //转换成的字符串
int len;            //接收字符串长度
m_cbegin ="123987/x";
m_strbegin =m_cbegin;
len=6;              //len为接收到的字符串的长度
m_strbegin.resize(len);

std::string中有resize函数,

void resize(int len,char c);//把字符串当前大小置为len,不足的部分使用字符c补充

转载请注明链接:
http://blog.csdn.net/starelegant/article/details/78134505

首先必须了解, string 可以被看成是以字符为元素的一种容器。字符构成序列(字符串)。有时候在字符序列中进行遍历,标准的 string 类提供了STL容器接口。具有一些成员函数比如begin()、end(),迭代器可以根据他们进行定位。 注意,与 char *不同的是, string 不一定以NULL('\0')结束。 string 长度 可以根据length()得到, string 可以根据下标访问。所以,不能将 string 直接赋值给 char *。 1、将 char *或者 char [] 转换 string 可以... (1) char str[10]={'j','u','l','i','a','n'} 申明 固定 长度 的字符 数组 ,如果赋值 长度 大于 数组 长度 ,报错;如果小于 数组 长度 ,后面都是0(即‘\0’) (2) char str[10]={&amp;amp;amp;amp;quot;julain&amp;amp;amp;amp;quot;} (3) char str[10]=&amp;amp;amp;amp;quot;julian&amp;amp;amp std:: string str2 = hello; 当 char 用于16进制的时候,再这样 转换 就会存在一个小问题:当某个 char 为0x00时候, string 默认赋值完成,后续数据不会再拷贝,类似于strlen的问题。 char ... 该楼层疑似违规已被系统折叠隐藏此楼查看此楼很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在C语言里没有字符串变量这样的概念,只有字符 数组 ,因此,只能定义一个 固定 数组 ,或用malloc动态分配一个 固定 的空间,但始终都受 固定 的限制,很多人都在思索,到底可以实现像 String 变量一样动态输入字符串吗?昨晚给一个朋友回答用:malloc(常量)还是觉得不够爽,思索了一... C++ string 是标准库中一种容器,相当于保存元素类型为 char 的vector容器(自己理解),这个类提供了相当丰富的函数来完成对字符串操作,以及与C风格字符串之间 转换 ,下面是对 string 一些总结 一,C语言的字符串 在C语言里,对字符串的处理一项都是一件比较痛苦的事情,因为通常在实现字符串的操作的时候都会用到最不容易驾驭的类型——指针。 比如下面这个例子: //example (1)length():最直接字符串 长度 (2)size():字符串 长度 (类似 string char 元素个数) (3)strlen( char *):函数求的是字符串的实际 长度 ,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。 (1)length() #include < string > string u... 在导出自定义文件时,我要输出一段 固定 长度 (比如80字节)的一个字符串, #define FILE_HEAD 80 char strOutput[FILE_HEAD] = "Version 1.0 of xxx File"; ar.write(strOutput,FILE_H 在写C/ C++ 程序的时候,编译时有可能会遇到类似于“ incompatible types when assigning to type ' char [128]' from type ' char *' ” 这样的错误。   如 char buf[128];     sprintf(buf, "Hello");     sprintf(buf, "有个人是个%dB"... CHAR 类型和VAR CHAR 类型都在创建表时指定了最大 长度 ,其基本形式如下: 字符串类型(M) 其中,“字符串类型”参数指定了数据类型为 CHAR 类型还是VAR CHAR 类型;M参数指定了该字符串的最大 长度 为M。例如, CHAR (4)就是数据类型为 CHAR 类型,其最大 长度 为4。 CHAR 类型的 长度 固定 的,在创建表时就指定了。其 长度 可以是0~255的任意值。2 、TEXT类型TEXT类型是一种特殊的字符串类型,包括TINYTEXT、TEXT、MEDIUMTEXT和LON image.png char 用于C或 C++ 中定义字符型变量,只占一个字节,取值范围为 -128 ~ +127(-27~27-1)。 char 类型占1字节,就是8位,所能存储的正整数是 0111 1111,即127。image.pngjava中的 char 用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容,只不过有些字符需要两个 char 来表示。在讨论这个问题之前,我们先对部分知识点做一下普及。编码首先我们都知道计算机中储存的信息都是用二进制数表示的,那怎么样让计算机存 1. C++ 中求 string 类型的 长度 有三种方式。在 c++ 中, string 代表一个类,有它自己的构造函数和成员函数。有两个成员函数都可以求 string 类型的 长度 。①  length()成员函数。②  size()成员函数。③  可以借助strlen函数,但是前提是需要将 string 类型的字符串 转换 char *类型。strlen( char *)函数求的是字符串的实际 长度 ,它求得方法是从开始到遇到第一个'...