char转换为string 固定长度的char数组转换为string
使用socket编程时候,需要将受到的字符串数组转换为string,但是转换后的字符串总会附加一些,转义字符。
直接上code
char[256] m_cbegin;
string m_strbegin;
int len;
m_cbegin ="123987/x";
m_strbegin =m_cbegin;
len=6;
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]={"julain"}
(3)
char
str[10]="julian&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
*)函数求的是字符串的实际
长度
,它求得方法是从开始到遇到第一个'...