请教,指针输出问题
写了个函数,按规定要求截取字符串,当调用函数,截取完成后,指针输出却是什么也没有的?请问是什么问题呢?例如说,比如 str_substr("abcdef", 1, 3); 得到 bc ;
代码看起来长,其实就一部分有用的!
谢谢!
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
static char* str_substr(char *str,const int from, const int to);
int main()
{
char str[]="abcdef";
//开始截取条件
int from=1;
//截取完毕条件
int to=3;
char *p;
p=str_substr(str,from,to);
printf("%s",p);
system("pause");
return 0;
}
/**
*字符串截取
*@param str: 原字符串
*@param from: 截取开始的位置
*@param to: 替换以后的子字符串
*@return 和str地址一样
*/
static char* str_substr(char *str,const int from, const int to)
{
char *s_str;
char *n_str;
int i=0;
//分配动态空间
n_str=(char *)malloc(sizeof(char *)*5);
memset(n_str,0,10);
s_str=str;
//判断截取
while(i++<to)
{
//当达到截取要求时
if(i>from)
{
//把截取的字符元素赋值到新建内存处
*n_str++=*s_str++;
}
else
{
//原字符串指针后移,继续判断
s_str++;
}
}
//新字符串加个结束符
*n_str='\0';
//返回新字符串首地址
return n_str;
}









