C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)
来源:互联网 发布:淘宝代销数据包 编辑:程序博客网 时间:2024/05/16 13:46
C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)
目标是:从src数组的起始位置开始向后偏移start个字符的位置开始, 最多复制len个非NUL字符到dst数组中,在复制完毕之后,dst 必须以NUL结尾,函数的返回值是存储于dst 数组的字符串的长度
方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include<assert.h>
int strlen(char * string)
{
int length;
for(length=0;*string++!='\0';)
length+=1;
return length;
}
int substr(char dst[], char src[],int start,int len)
{
char* sc = src+start;
int n = strlen(sc);
int i = 0;
int **ret=NULL;
assert(dst != NULL );
assert(src != NULL );
if(n < len)
{
len = n;
}
while(len)
{
dst[i] = sc[i];
len--;
i++;
}
dst[i] = '\0';
}
int main()
{
char string[]="hello-my-college";
char string1[100]={0};
int ret=0;
int num=0;
int count=0;
printf("please the len and the num is:\n");
scanf("%d%d",&num,&count);
ret=substr(string1,string,num,count);
printf( "目的数组长度 : %d \n",count);
printf( "目的数组为: %s \n",string1);
system("pause");
return 0;
}
方法二:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<assert.h>
#include<math.h>
int strlen(char * string)
{
int length;
for(length=0;*string++!='\0';)
length+=1;
return length;
}
int substr( char dst[], char src[], int start, int len )
{
char *temp = dst;
int dst_len = 0;
int src_len = strlen(src);
int i=0;
assert( dst != NULL && src != NULL );
if( start<0 || len<=0 || src_len < start )
printf( "提取位置或字符个数不符合要求 !\n" );
for( i=0; i<start; i++ )
src++;
//while( (*temp++ = *src++) != '\0' && dst_len < len )
while( dst_len < len && (*temp++ = *src++) != '\0' ) // 若把比较长度放在后面,就会多复制一个字符
dst_len++;
*temp = '\0';
return dst_len;
}
int main()
{
char string[]="hello-my-college";
char string1[100]={0};
int ret=0;
int num=0;
int count=0;
printf("please the len and the num is:\n");
scanf("%d%d",&num,&count);
ret=substr(string1,string,num,count);
printf( "目的数组长度 : %d \n",count);
printf( "目的数组为: %s \n",string1);
system("pause");
return 0;
}
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)目标是:从src数组的起始位置开始向后偏移star
- 编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: Int substr(char dst[], char src[],int start, int len) {} 目标是:从src数组
- int substr( char dst[], char src[], int start, int len )
- c语言库函数【string.h】之 substr_(char *dest, const char* src, unsigned int start, unsigned int len)
- c语言库函数【string.h】之strncpy_(char* dst,const char* src,int count)
- 字符串(char *)转整型(int)
- 字符串(char*)转化为int
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char转换成int
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- C语言中char int转换问题
- c语言中:int main(int argc, char* argv[])
- 对象的哈希值
- html5 canvas 画笔透明的实现方法
- 【自考】—信系开管这次我们走心了
- 班级 学号 姓名 map集合映射
- Django自定义访问日志模块
- C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)
- Matplotlib:plotting
- 看菜鸟如何更改Windows下 MySQL5.7 版本的服务名
- Linux设备驱动程序安装fatal error: linux/module.h: No such file or directory
- 使用ListView实现垂直跑马灯效果
- Windows运行PHP+MYSQL时,MYSQL服务无法正常启动的解决办法(1053错误)
- 数据结构(八)线性表链式存储结构
- 加速iOS开发的28个第三方库
- Ubuntu麒麟下搭建FTP服务