社区
C语言
帖子详情
C语言中从指定位置开始拷贝指定长度的字符串?
xiaoyao6650
2008-10-24 02:32:53
我是C语言新手。
请问C语言中怎样实现从指定位置开始拷贝指定长度的字符串?
只能用循环一个一个赋值吗?
有没有相应的函数可供使用呢?
...全文
5465
22
打赏
收藏
C语言中从指定位置开始拷贝指定长度的字符串?
我是C语言新手。 请问C语言中怎样实现从指定位置开始拷贝指定长度的字符串? 只能用循环一个一个赋值吗? 有没有相应的函数可供使用呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaoyao6650
2008-10-24
打赏
举报
回复
[Quote=引用 19 楼 Arthur_ 的回复:]
a[9]=char(255); 等价于 a[9]=(char)255
[/Quote]
将这个写入有什么用吗?
anybbs
2008-10-24
打赏
举报
回复
[Quote=引用 20 楼 anybbs 的回复:]
引用 9 楼 xiaoyao6650 的回复:
怎么不可以呢?
我定义了两个数组
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
//或者 memcpy(b,a+1,2);
puts(b);
显示的结果都是:
bc¥¥¥¥¥¥¥¥¥……¥(¥表示乱码)abcdefg
这是为什么啊
是我的指针用的不对吗?
strncpy会自动在目的串最后加一个结束符
而memcpy则不会加
================
[/Quote]
哦,sorry, strncpy当copy的字符少于源字符串时是不会自动加结束符的
anybbs
2008-10-24
打赏
举报
回复
[Quote=引用 9 楼 xiaoyao6650 的回复:]
怎么不可以呢?
我定义了两个数组
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
//或者 memcpy(b,a+1,2);
puts(b);
显示的结果都是:
bc¥¥¥¥¥¥¥¥¥……¥(¥表示乱码)abcdefg
这是为什么啊
是我的指针用的不对吗?
[/Quote]
strncpy会自动在目的串最后加一个结束符
而memcpy则不会加
================
Arthur_
2008-10-24
打赏
举报
回复
a[9]=char(255); 等价于 a[9]=(char)255
xiaoyao6650
2008-10-24
打赏
举报
回复
[Quote=引用 15 楼 Arthur_ 的回复:]
a[10]=char(255); //传统的想法是:难道没有越界吗?
[/Quote]
是我写错了,应该死是a[9]=char(255);
cyj626
2008-10-24
打赏
举报
回复
[Quote=引用 12 楼 dic_walter 的回复:]
引用 9 楼 xiaoyao6650 的回复:
怎么不可以呢?
我定义了两个数组
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
//或者 memcpy(b,a+1,2);
puts(b);
显示的结果都是:
bc¥¥¥¥¥¥¥¥¥……¥(¥表示乱码)abcdefg
这是为什么啊
是我的指针用的不对吗?
char b[10] = {0};
强烈建议初始化!!!!!
[/Quote]
up
lbh2001
2008-10-24
打赏
举报
回复
[Quote=引用 13 楼 xiaoyao6650 的回复:]
还有一个问题
就是
char a[10]="abcdefgbcj";
a[10]=char(255);
这句话是什么意思啊?
[/Quote]
将数组结束处改写为-1
但最好不要这样用
此时为越界使用,会产生破坏
Arthur_
2008-10-24
打赏
举报
回复
a[10]=char(255); //传统的想法是:难道没有越界吗?
shiyi820509
2008-10-24
打赏
举报
回复
最大只能用到a[9]啊 用a[10]就数组越界了
xiaoyao6650
2008-10-24
打赏
举报
回复
还有一个问题
就是
char a[10]="abcdefgbcj";
a[10]=char(255);
这句话是什么意思啊?
dic_walter
2008-10-24
打赏
举报
回复
[Quote=引用 9 楼 xiaoyao6650 的回复:]
怎么不可以呢?
我定义了两个数组
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
//或者 memcpy(b,a+1,2);
puts(b);
显示的结果都是:
bc¥¥¥¥¥¥¥¥¥……¥(¥表示乱码)abcdefg
这是为什么啊
是我的指针用的不对吗?
[/Quote]
char b[10] = {0};
强烈建议初始化!!!!!
xiaoyao6650
2008-10-24
打赏
举报
回复
[Quote=引用 10 楼 Arthur_ 的回复:]
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
加一个b[2] = '\0';
[/Quote]
谢谢了
可以了
原来是没有结束符号
Arthur_
2008-10-24
打赏
举报
回复
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
加一个b[2] = '\0';
xiaoyao6650
2008-10-24
打赏
举报
回复
怎么不可以呢?
我定义了两个数组
char a[]="abcdefg";
char b[10];
strncpy(b, a+1, 2);
//或者 memcpy(b,a+1,2);
puts(b);
显示的结果都是:
bc¥¥¥¥¥¥¥¥¥……¥(¥表示乱码)abcdefg
这是为什么啊
是我的指针用的不对吗?
Arthur_
2008-10-24
打赏
举报
回复
strstr 或者 strchr找到位置
根据返回的指针作为起始点
memcpy(youbuffer, start, len);
anybbs
2008-10-24
打赏
举报
回复
strncpy(dest, src+POS, len)
dest: 目的
src : 源
POS : 指定位置
len : 长度
jakky520
2008-10-24
打赏
举报
回复
int strncpy(char *s1,char *s2,int n);
xhs_lh04
2008-10-24
打赏
举报
回复
memcpy(desc,src+offset, len);
xhs_lh04
2008-10-24
打赏
举报
回复
strncpy(desc, src+offset, len);
lbh2001
2008-10-24
打赏
举报
回复
memcpy(des, source, sizof(source));
加载更多回复(2)
【
C语言
——
长度
不受限制的
字符串
函数】
本文介绍了
C语言
中
长度
不受限制的
字符串
函数,包括strlen、strcpy、strcat和strcmp。详细说明了各函数的功能、原型、使用注意事项,还给出了模拟实现方法,如strlen有计数变量、递归、指针相减三种模拟实现方式,其他函数也有相应模拟实现思路。
(
C语言
)常见字符函数和
字符串
函数
本文介绍了
C语言
中
处理
字符串
的基本函数,如
字符串
长度
计算、
拷贝
、拼接、比较及搜索等,并探讨了字符分类和转换函数的应用。
C语言
面试题---
字符串
拷贝
函数与内存
拷贝
函数
本文探讨了
C语言
中
字符串
拷贝
函数strcpy和内存
拷贝
函数memcpy的区别。strcpy在
拷贝
字符串
时会自动复制结束标志'
从
字符串
的
指定
位置
删除
指定
长度
的子串
本文详细介绍了两种从
字符串
中
删除
指定
长度
子串的方法。一种是利用strcpy函数直接跳过目标子串,另一种是通过手动计算下标逐个移动字符。通过具体示例,如从abcdefg
中
删除第三个字符起的三个字符,最终得到abfg,展示了算法的实现过程。
【
C语言
】
字符串
操作总结
本文详细介绍了
C语言
中
常用的
字符串
处理函数,如逆序输出、求
长度
strlen、
拷贝
strcpy、连接strcat、比较strcmp、复制
指定
长度
strncpy和strncat,以及忽略大小写比较strcmpi等,同时还涵盖了字符属性检查函数如isalpha、isupper、islower和isdigit。,
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章