社区
C语言
帖子详情
读取内存中字符串的一个小问题
刘铠文
2018-02-10 09:38:45
我现在需要从内存中读取一段字符串,字符串的长度没有给出来,怎样可以无乱码的读取到正确的字符串并赋值?
...全文
1465
10
打赏
收藏
读取内存中字符串的一个小问题
我现在需要从内存中读取一段字符串,字符串的长度没有给出来,怎样可以无乱码的读取到正确的字符串并赋值?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mdcire
2018-02-12
打赏
举报
回复
这个不太好弄吧,在不知道长度情况下你不知道字符串编码就不知道它是以\0还是\0\0结束的
cattpon
2018-02-12
打赏
举报
回复
不就是乱码字符串引起的吗?
赵4老师
2018-02-11
打赏
举报
回复
遇到.dll就认为字符串结束?
老马何以识途
2018-02-11
打赏
举报
回复
至少地址范围能知道吧?而且其中不应该存在不允许访问的地址?
真相重于对错
2018-02-10
打赏
举报
回复
c/c艹的字符串以\0表示结尾
CSD_C_CHEN
2018-02-10
打赏
举报
回复
引用 3 楼 u011377435 的回复:
但是乱码位置的字符无法访问,访问就会崩溃
既然无法访问, 可否代表该内存不是运行程序分配的空间, 不是运行程序的使用内存, 为什么要去访问? 如果你非要这么做, 建议你一个字符一个字符读, 读到崩了, 然后抛异常处理, 代表你已经没法往下读了
刘铠文
2018-02-10
打赏
举报
回复
但是DbgPrint可以输出
刘铠文
2018-02-10
打赏
举报
回复
但是乱码位置的字符无法访问,访问就会崩溃
faihung
2018-02-10
打赏
举报
回复
一般是调用strcpy() memcpy()这些函数。 想从无序乱码中读到有效的字符,而你又不知道字符的长度,建议全部读取出来。 用你认为是有效的字符进行条件判断或者比较,然后重新组合。
刘铠文
2018-02-10
打赏
举报
回复
[C语言编程练习][16]输入
一个
整型数,然后申请对应大小空间
内存
,然后
读取
一个
字符串
,
字符串
的输入长度小于最初输入的整型数大小,最后输出输入的
字符串
即可(无需考虑输入的
字符串
过长,超过了
内存
大小);
输入
一个
整型数,然后申请对应大小空间
内存
,然后
读取
一个
字符串
,
字符串
的输入长度小于最初输入的整型数大小,最后输出输入的
字符串
即可(无需考虑输入的
字符串
过长,超过了
内存
大小); #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include<stdlib.h> #include<string.h> /*输入
一个
整型数,然后申请对应大小空间
内存
, 然后
读取
一个
字符串
,
字符串
的输入长度小于最初输入的整型数大小
[正式学习java③]——
字符串
在
内存
中
的存储方式、为什么
字符串
不可变、
字符串
的拼接原理,键盘录入的小细节。
🔥在java
中
,
内存
中
有两个地方可以存储
字符串
,
一个
是
字符串
池,
一个
是堆
内存
,串池
中
的
字符串
不会重复,而堆
中
的
字符串
每次都会开辟一块新的空间,因为维护串池的是
一个
hashtable,以
字符串
hashcode作为建,引用作为值。
字符串
的底层是用
一个
字符数组保存的,而这个字符数组又是用final和private关键字修饰的,用final关键字修饰代表该数组的地址不能发生变化,但是你可以修改数组里面的内容啊,这时private发挥作用了,限制这个数组只能在String类
中
使用,你压根拿不到这个地址。
读取
字符串
的字符时出错 无法
读取
内存
读取
字符串
的字符时出错 无法
读取
内存
0.引言1.string类型2.string类型的打印 0.引言 malloc与new的区别!报错: 1.string类型 在写链表的时候,节点的定义
中
使用了string类型,如果是使用string类型,它的
内存
是动态分配的,如下图所示,[11]后面还有很多,根据实例化时确定具体大小。而使用malloc无法进行动态
内存
分配,只能改为new. 2.string类型的打印 另外string类型的打印也无法直接cout,打印方式为cout<<stringname.c
C++
读取
字符串
在C++
中
可以通过cin来
读取
一个
字符串
,但是每次
读取
一个
单词并不是最好的选择,例如,假设程序要求读入的城市名,用户输入New York,希望程序读入的是完成的城市名,而不单单是
一个
单词。C++提供了一次额面向行的类成员函数:getline()和get()。这两个函数都
读取
一行输入,直到到达换行符。然而,随后getline()将丢弃换行符,而get()将换行符保留在输入序列
中
。 ...
c语言输入任意长度
字符串
,
读取
不定长
字符串
输入
C语言通常使用scanf处理输入,如果要
读取
字符串
,那么就需要定义
一个
字符数组(char[])。可是,如果数组定义长度不足,就可能发生溢出。在C语言里有个可以用来
读取
字符的函数(getchar),我们可以利用这个函数来实现不定长的
字符串
输入。下面我们就来讲讲如何做到这一点。首先,说一下原理:getchar每次只能
读取
一个
字符。因此,我通过循环使用getchar逐个
读取
字符的方式,将所有输入字符
读取
...
C语言
69,374
社区成员
243,076
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章