社区
C语言
帖子详情
如何将char数组的某一段拷贝到另一个char数组里面?在线等待啊!急啊
sailor_Song
2003-06-06 09:45:45
如何将char数组的某一段拷贝到另一个char数组里面?
char a[] = "dlkfigjchduejffasdf";
char b[10];
如何将a中从的五位开始取十位放到b中!用什么函数?
在线等待啊!急啊
...全文
3067
12
打赏
收藏
如何将char数组的某一段拷贝到另一个char数组里面?在线等待啊!急啊
如何将char数组的某一段拷贝到另一个char数组里面? char a[] = "dlkfigjchduejffasdf"; char b[10]; 如何将a中从的五位开始取十位放到b中!用什么函数? 在线等待啊!急啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
*和
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语言
char
数组
的对比,
char
数组
、
char
指针与字符串常量的比较
数组
不是基本类型,不能直接参与比较,
数组
与字符串及字符指针与字符串比较其实比较的是二者的地址。例:int isequiv(
char
*t){if (t == "
char
")return 1;elsereturn 0;}int main(){
char
test[] = "
char
";
char
*temp = "
char
";printf("%d", isequiv(test));//输出 0print...
C++中把
数组
复制到另
一个
数组
中
有两种方式: 一、进行
数组
遍历,依次赋值 int arr1[5] = { 1, 2, 3, 4, 5 }; int arr2[10] ={ 0 }; for(int i=0;i<sizeof(arr1)/sizeof(int);i++) arr2[i] = arr1[i] ; 该段程序功能是遍历
数组
arr1,逐个赋值到
数组
arr2对应元素中。 二、借用内存复制函数memcpy,整体赋值 void *memcpy(void *dst, void *src, zize_t
C语言
70,005
社区成员
243,256
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章