C中如何从字符串中取出子串,有没有类似substring()的函数

Dream_2014 2007-03-13 08:50:35
C中如何从字符串中取出子串,有没有类似substring()的函数
...全文
6643 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bargio_susie 2007-03-14
  • 打赏
  • 举报
回复
是的。。
#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);-------->strncpy(string,str1+想要开始的地方,3);
string[3]='\0';
printf("%s",string);
return 0;
}
onlyc_2005 2007-03-14
  • 打赏
  • 举报
回复
请教楼上:
这两个函数是不是都是从第一个字符开始copy N个字符呢?如果我想copy中间的一段字符串该如何操作?是不是先要用指针定位到我想copy的地方?
hilary0810 2007-03-14
  • 打赏
  • 举报
回复
晕倒

void substing(char *pSrc,char *pDes,int StartPos,int len)
{
if(StartPos > strlen(pSrc))
return ;
len = (strlen(pSrc) - StartPos) > Len ? Len:(strlen(pSrc) - StartPos);
strncpy(pDes, pSrc+StartPos, Len);
pDes[Len] = '\0';
}
jixingzhong 2007-03-13
  • 打赏
  • 举报
回复
函数名称: memcpy
函数原型: void *memcpy(void *dest, const void *src, size_t n)
函数功能: 字符串拷贝
函数返回: 指向dest的指针
参数说明: src-源字符串,n-拷贝的最大长度
所属文件: <string.h>,<mem.h>

#include <stdio.h>
#include <string.h>
int main()
{
char src[]="******************************";
char dest[]="abcdefghijlkmnopqrstuvwxyz0123456709";
char *ptr;
printf("destination before memcpy:%s\n",dest);
ptr=memcpy(dest,src,strlen(src));
if (ptr)
printf("destination after memcpy:%s\n",dest);
else
printf("memcpy failed");
return 0;
}
jixingzhong 2007-03-13
  • 打赏
  • 举报
回复
函数名称: strncpy
函数原型: char *strncpy(char *dest, const char *src,int count)
函数功能: 将字符串src中的count个字符拷贝到字符串dest中去
函数返回: 指向dest的指针
参数说明: dest-目的字符串,src-源字符串,count-拷贝的字符个数
所属文件: <string.h>

#include <stdio.h>
#include <string.h>
int main()
{
char string[10];
char *str1="abcdefghi";
strncpy(string,str1,3);
string[3]='\0';
printf("%s",string);
return 0;
}
jixingzhong 2007-03-13
  • 打赏
  • 举报
回复
strncpy 或者 memcpy

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧