利用指针函数编写一个求子字符串的函数
2014-07-21 11:53
330 查看
#include<stdio.h>
#include<string.h>
#include<malloc.h>
//定义一个指针型函数substr
char *substr(char *dest,char *src,int begin,int len)
{
int srclen=strlen(src); //取源字符串长度
if(begin>srclen||!srclen||begin<0||len<0)
dest[0]='\0'; //当取子串的开始位置超过源串长度,或源串长度为0,或开始位置和子串的长度为从开始位置
//子串长度为非法(小于0)时,目标串置为空串
else
{
if(!len||(begin+len)>srclen)
len=srclen-begin+1; //当字符串长度为0或开始位置加字串长度大于源长度时,调整子串为从开始位置到源
//串结束的所有字符
memmove(dest,src+begin-1,len); //调用库函数memmove将子串从源串中移到目标串中
dest[len]='\0';
}
return dest;
}
void main()
{
char *dest;
char src[]="C Programming Languege";
if((dest=(char *)malloc(80))==NULL)
{
printf("no memory\n");
exit(1);
}
printf("%s\n",substr(dest,src,15,4));
printf("%s\n",substr(dest,src,15,0));
free(dest);
}
#include<string.h>
#include<malloc.h>
//定义一个指针型函数substr
char *substr(char *dest,char *src,int begin,int len)
{
int srclen=strlen(src); //取源字符串长度
if(begin>srclen||!srclen||begin<0||len<0)
dest[0]='\0'; //当取子串的开始位置超过源串长度,或源串长度为0,或开始位置和子串的长度为从开始位置
//子串长度为非法(小于0)时,目标串置为空串
else
{
if(!len||(begin+len)>srclen)
len=srclen-begin+1; //当字符串长度为0或开始位置加字串长度大于源长度时,调整子串为从开始位置到源
//串结束的所有字符
memmove(dest,src+begin-1,len); //调用库函数memmove将子串从源串中移到目标串中
dest[len]='\0';
}
return dest;
}
void main()
{
char *dest;
char src[]="C Programming Languege";
if((dest=(char *)malloc(80))==NULL)
{
printf("no memory\n");
exit(1);
}
printf("%s\n",substr(dest,src,15,4));
printf("%s\n",substr(dest,src,15,0));
free(dest);
}
相关文章推荐
- java 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
- 利用C实现:编写一个函数,它从一个字符串中提取一个子字符串。
- 利用C实现:编写一个函数,它从一个字符串中提取一个子字符串。
- 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n(利用指针函数)
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个
- 编写一个函数,实现接受输入的字符串,然后取反
- 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
- 【每天算法4】编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
- 请编写实现malloc()内存分配函数功能一样的代码。给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
- 编程:编写一个截取字符串的函数,(网上流传的答案有的是错的)输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4
- 编写一个函数将一个十六进制数的字符串参数转换成整数返回
- java 面试中的一道编写一个截取字符串的函数
- 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”
- 编写一个截取字符串的函数,输入一个字符串和字节数,按字节截取字符串,汉字不会出现被截取半边
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不
- 导师作业:1、编写一个函数,将一个C类型字符串反向存放。
- 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
- 设计一个程序,从键盘上输入若干字符串,利用算法库中的查找函数对给定的字符串进行查找,将查找后的结果输出
- 编写一个截取字符串的函数
- 【Java】编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。