C语言实现JAVA的substring,C语言中类似substring函数的用法,substring函数用法

本文介绍了C语言中如何通过strncpy和memcpy函数来实现类似于substring的功能。strncpy函数用于将源字符串src的指定数量count的字符复制到目标字符串dest中,而memcpy则用于拷贝指定长度的内存块。通过这两个函数,可以实现字符串的截取操作。同时,文中还提供了一个自定义substring函数的示例,用于从输入字符串中提取子串。
摘要由CSDN通过智能技术生成

C语言中类似substring函数的用法,substring函数用法

/*本文用于知识积累,若有错误之处望指出,谢谢。*/

C语言是没有substring函数的,但是可以通过类似的函数去获取字符串,也可以用自定义的方式。

函数名称:     strncpy函数原型:     char *strncpy(char *dest, const char *src,int count)函数功能:     将字符串src中的count个字符拷贝到字符串dest中去函数返回:     指向dest的指针参数说明:     dest-目的字符串,src-源字符串,count-拷贝的字符个数所属文件:     

#include 

#include 

int main()

{

char string[10];

char *str1="abcdefghi";

strncpy(string,str1,3);

string[3]='\0';

printf("%s",string);

return 0;

}

______________________________________________________________________________

函数名称:     memcpy函数原型:     void *memcpy(void *dest, const void *src, size_t n)函数功能:     字符串拷贝函数返回:     指向dest的指针参数说明:     src-源字符串,n-拷贝的最大长度所属文件:     ,

#include 

#include 

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;

}

------------------------------------------------------------------------------------------------------------------------

自己写substring函数。        // 转自 Devilhand 博客#define N 50

int substring(char *, int, int, char *);

main()

{

int start,len,count;

char s[N];

char t[N];

printf("请输入字符串:\n");

gets(s);

printf("请输入起始位置:");

scanf("%d",&start);

printf("请输入所取字符长度:");

scanf("%d",&len);

count=substring(s,start,len,t);

if(count==-1)

printf("起始值超出范围!\n");

else if(count==-2)

printf("长度超出范围!\n");

else

{

printf("得到的字符串是:");

puts(t);

getch();

}

return 0;

}

int substring(char * s,int start,int len,char * t)

{

int i=0,j=0;

while(s[i])

i++;

if(i

return -1;

else if(i

return -2;

else

{

for(i=start-1;i<=start+len-2;i++)

{

t[j]=s[i];

j++;

}

t[j]='\0';

return 1;

}

}

相关文章暂无相关文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值