社区
C语言
帖子详情
如何将char数组的某一段拷贝到另一个char数组里面?在线等待啊!急啊
sailor_Song
2003-06-06 09:45:45
如何将char数组的某一段拷贝到另一个char数组里面?
char a[] = "dlkfigjchduejffasdf";
char b[10];
如何将a中从的五位开始取十位放到b中!用什么函数?
在线等待啊!急啊
...全文
3078
12
打赏
收藏
如何将char数组的某一段拷贝到另一个char数组里面?在线等待啊!急啊
如何将char数组的某一段拷贝到另一个char数组里面? char a[] = "dlkfigjchduejffasdf"; char b[10]; 如何将a中从的五位开始取十位放到b中!用什么函数? 在线等待啊!急啊
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liu_feng_fly
2003-07-18
打赏
举报
回复
可以使用std::copy
lcp
2003-07-18
打赏
举报
回复
支持:
stukov2002(卡拉是头猪)
不过:
1.使用库函数:
strncpy(b, a + 5, 10);
2.或者:
memset(b, 0, 10);
memcpy(b, a + 5, 10);
第一种比较不好,因为strncpy拷贝了10个字符到b后,还会再加一个'\0',这样就越界了。
用第二种比较合题
zteliubin(bill)等几位大虾说的很好。
zteliubin
2003-07-18
打赏
举报
回复
strcpy()当然不行!
playboyxp
2003-07-18
打赏
举报
回复
可以用strcpy()函数
zteliubin
2003-07-18
打赏
举报
回复
strncpy/memcpy都可!
re: junglesong(在黑暗中举起探索的火炬) & stukov2002(卡拉是头猪)
你们没有什么好争的,题目说只拷贝10位,那就只拷贝10位,
再往后面赋0已经越界访问了!
至于打印问题,题目没要求打印,自然不会出现那样的问题!
还有memset()这里已经没什么用,一共才10字节,拷贝10字节!
junglesong
2003-07-18
打赏
举报
回复
to stukov2002(卡拉是头猪):
memset没有给b[10]赋'\0'啊,可以运行以下程序看看。
#include "stdafx.h"
#include <memory.h>
#include <iostream.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[]="AAAAABBBBBCCCCC";
char b[10];
memset(b,0,10);
memcpy(b,a+5,10);
printf("%s\n",b);
cout<<b<<endl;
return 0;
}
zteliubin
2003-07-18
打赏
举报
回复
re: lcp(dupi)
呵呵,纠正一下,strncpy和memcpy都不会在后面追加'\0'!
idontlikenickname
2003-07-17
打赏
举报
回复
to:junglesong(在黑暗中举起探索的火炬)
memset不就是这个作用吗? :)
junglesong
2003-07-17
打赏
举报
回复
to stukov2002(卡拉是头猪) :
memset(b, 0, 10);
memcpy(b, a + 5, 10);
还要加上一句:
b[10]='\0';
否则会连续打印栈内存的内容直到遇到'\0'。
六月初六
2003-07-16
打赏
举报
回复
<原形>*memccpy(void *dest,void *str,int c,size_t n)
<位置>mem.h string.h
<说明>拷贝str c位置以后大小为n的数据到dest
<环境>tc2.0
idontlikenickname
2003-07-16
打赏
举报
回复
使用库函数:
strncpy(b, a + 5, 10);
或者:
memset(b, 0, 10);
memcpy(b, a + 5, 10);
bigtea
2003-07-16
打赏
举报
回复
自己写一个
void strncpy(char * dest,char * src,int start,int n)
{
src=src+start-1;
while ( (* dest++ = * src++) && n-1)
n--;
* dest='\0';
}
main()
{
char a[] = "dlkfigjchduejffasdf";
char b[20]={'\0'};
strncpy(b,a,5,10);
printf("%s\n",b);
}
C语言中
char
型
数组
将其中
一段
值赋到另
一个
char
型
数组
中
char
型
数组
复制
c++关于将string类型复制给
char
数组
的一些心得
c++中新增了string的这个类型可以让我们很方便的操作字符串,然后再将之复制给我们需要的
char
数组
,但是在复制的时候碰到过一些问题,以此记录下来 先上
一段
代码 string demo=“123456”;
char
num[6]={0}; memcpy(num,demo.c_str(),6); 看上去应该是没有什么问题的,但是在使用num的时候就会发现后面多了一些古怪的东西,这是为什么呢?因为...
关于将
char
数组
赋值给string时候的
一个
小坑
但是这里有
一个
小坑就是这种写法默认
char
数组
a是以'\0'结尾的,即空字符。这时候直接将a赋值给b是没有问题的,但是如果a的结尾没有'\0',就会导致b出现错误。可以理解为这个赋值过程是将a的字符串从第
一个
开始遍历
一个
个给b,遇到'\0'结束。这里以
一个
结构体包含了两个
char
数组
成员,a和b在地址上是相连的,方便看溢出时读取的数据。用strncpy将d复制给a时,故意将d的
数组
长度设置比a大,为的就是不将'\0'复制给a。结果是:0x80fcb0 0x80fcb5。中间差的刚好是a
数组
的大小。
char
*和
char
数组
的区别(深
拷贝
和浅
拷贝
的观点)以及内核访问用户空间
char
*和
char
数组
真的相同吗?我们以实例为证: typedef struct {
char
* s1;
char
* s2; }PARAM,*PPARAM; int main(int argc,
char
*argv[]) { PARAM pa1,pb1; pa1.s1 = "abcd"; pa1.
用函数把
一个
数组
中的字符串
拷贝
到另
一个
数组
中去#C语言
【代码】用函数把
一个
数组
中的字符串
拷贝
到另
一个
数组
中去#C语言。
C语言
70,024
社区成员
243,260
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章