社区
C++ 语言
帖子详情
请问如何建立字符串类型
lonelybug
2003-07-06 10:59:50
如何实现string这种变量类型呢!?
我用char *str
然后再用malloc的方法好像不能动态改变指针所指向内存的大小,如何做才能像stirng类型的变量一样可以输入任意多的字符呢!?
...全文
35
3
打赏
收藏
请问如何建立字符串类型
如何实现string这种变量类型呢!? 我用char *str 然后再用malloc的方法好像不能动态改变指针所指向内存的大小,如何做才能像stirng类型的变量一样可以输入任意多的字符呢!?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
idontlikenickname
2003-07-06
打赏
举报
回复
使用realloc()函数实现动态分配,因为realloc()在扩大缓冲的同时不改变原来缓冲的内容.
下边的程序中pBuffer指向的缓冲区的长度随着你输入而增加,同时会有变量记录缓冲区的长度,输入回车时结束~
#include <conio.h>
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *pBuffer; // 存储缓冲区.
char ch; // 存放输入字符.
int nLen; // 记录缓冲区长度.
// 先分配一个字节.
nLen = 0;
pBuffer = (char *)malloc((nLen + 1) * sizeof(char));
if(!pBuffer)
{
printf("malloc() failed.\n");
exit(1);
}
// 开始输入.
printf("Input a string(Enter to exit):");
do{
// 接收键盘输入并回显.
ch = getche();
// 不是回车则调整缓冲区大小并记录输入字符,否则结束输入.
if(ch != 13)
{
char *p;
*(pBuffer + nLen) = ch;
nLen ++;
p = (char *)realloc(pBuffer, (nLen + 1) * sizeof(char));
if(!p)
{
printf("realloc() failed.\n");
free(pBuffer);
exit(1);
}
pBuffer = p;
}
else
{
*(pBuffer + nLen) = '\0';
break;
}
}while(1);
// 显示输入结果和缓冲区长度.
printf("String:%s", pBuffer);
printf("Len:%d", nLen);
// 释放缓冲空间.
free(pBuffer);
}
pengzhenwanli
2003-07-06
打赏
举报
回复
其实malloc可以动态改变
关于string 的实现,你可以看STL的源代码
bigtea
2003-07-06
打赏
举报
回复
预空间足够,其实其他语言中的string变量也是有范围限制的,只不过一般都够用而已。
象在C中
main()
{
char * str;
str=(char *)malloc(100*sizeof(char));
scanf("%s",str);
printf("%s",str);
}
其实也相当于定义了一个string 变量(最大为100个字符),这个变量定义的内存区域由str指针指向。
一个变量实际就是一块具体物理存储单元的别名。
数据
类型
之
字符串
类型
数据
类型
之
字符串
类型
字符串
是 Python 中最常用的数据
类型
。我们可以使用引号('或")来创建
字符串
。创建
字符串
很简单,只要为变量分配一个值即可。例如: str1 = ‘Hello World!’ str2 = “Python Good” 注意 Python不支持单字符
类型
,单字符在 Python 中也是作为一个
字符串
使用。 在使用
字符串
时,有些情况下需要用到 转义符,python中将各种
类型
表达式中的反斜杠 \ 符号,都看作转义符,如 \n 代表换行 \t 代表空tab。 下面看几个例子 #输出一个单
MySQL中的列
类型
之
字符串
类型
总结
在SQL中,将
字符串
类型
分为了六类:char,varchar,text,blob,enum和set。【1】定长
字符串
char磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度。Char(L):L代表length,可以存储的长度,单位为字符,最大长度值可以为255。char(4):在UTF8环境下,需要4*3=12个字节存储空间。【2】变长
字符串
varchar变长
字符串
在分配空间的时候按照...............
python 数字
类型
和
字符串
类型
的相互转换_python 数字
类型
和
字符串
类型
的相互转换实例...
python 数字
类型
和
字符串
类型
的相互转换实例一、python中
字符串
转换成数字(方法1)类中进行导入:import stringstr='555'num=string.atoi(str)num即为str转换成的数字转换为浮点数:string.atof(str)(方法2)直接intint(str)即可。二、数字转换成
字符串
num=322str='%d'%numstr即为num转换成的
字符串
以上这...
mongodb 关于 整数
类型
和
字符串
类型
索引的比较
想看看到底是 整数
类型
的索引快呢,还是
字符串
类型
的索引快,到底快多少呢?内存分别占多少呢?今天就来测试一下 配置 华硕飞行堡垒6 500G 的 SSD 准备数据 a 是 for 循环的变量 { id:a, name:'abcdefg'+a } 2千万的数据 id 和 name 是for循环出来的 首先我们看一下查询全部数据所需要的时间 db.test1.find().explain('executionStats') 然后我等了10分钟… , 果断 ctrl + c 强制退出,不知道要等多久 查询
oracle中
字符串
类型
详解
一 varchar,nvarchar, 四个
类型
都属于变长字符
类型
, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样, 与上面区别在于是根据Unicode 标准所进行的定义的
类型
,通常用于支持多国语言类似系统的定义。 1.char char的长度是固定的,比如说,你定义了char(20
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章